一 MFC的发展
VC 1.0 -> VC 5.0 -> VC 6.0 -> VS 2003 -> VS 2005 -> (VS 2008 SP1) -> VS 2010
二 MFC基础
1 MFC 微软基础类库
采用类的方式将Win32 API等进行封装,形成的类库。
2 MFC相关头文件(大部分已afx开头,application framework, x 表示强大之意)
afx.h (application framework ,X 预定义头文件)
afxwin.h (类似于 windows.h)
afxext.h (MFC扩展头文件)
三 MFC 应用程序
分类:
1 MFC控制台程序
1.1 包含了afx系列的头文件
1.2 CWinApp theApp —— MFC的应用程序类,封装了应用程序的启动过程
1.3 AfxWinInit MFC初始化 函数
将应用程序程序的信息初始化
2 MFC动态库和静态库
2.1 静态库 增加了MFC的支持
2.2 动态库
2.2.1 MFC规则动态库
2.2.1.1 使用MFC静态库的规则DLL
2.2.1.2 使用MFC动态库的规则DLL
2.2.2 MFC扩展动态库
2.3 不同
2.3.1 增加了MFC相关的afx头文件
2.3.2 包含了继承了CWinApp的类,并且声明了全局变量
3 MFC应用程序
3.1 单文档视图应用程序
3.1.1 包含了一个继承CWinApp的类
3.1.2 CMainFrame 类
3.1.3 CView的一个子类
3.1.4 CDocument的一个子类
3.2 多文档视图应用程序
3.2.1 包含了一个继承CWinApp的类
3.2.2 CMainFrame 类
3.2.3 CView的一个子类
3.2.4 CDocument的一个子类
3.2.5 CChildFrame子框架窗口类
3.3 对话框应用程序
3.3.1 包含一个继承CWinApp的类
3.3.2 对话框类
四 MFC中的类
1 CObject类
MFC类基础,大部分MFC类都是CObject的子类或孙类
CObject封装了MFC的基础的机制
1.1 new,delete
1.2 Assert
1.3 运行时信息
1.4 动态创建
1.5 序列化
2 应用程序框架类
应用程序启动相关信息,以及MFC消息映射机制
3 窗口支持类
封装了窗口操作API,各种控件及窗口框架
4 绘图类
提供了绘图API的封装,以及相关的GDI设备封装
5 集合类
提供了数组,链表,映射的数据结构的操作
6 数据库支持类
ODBC支持类,DAO支持类(已作废)
7 同步类
临界区/事件/互斥/信号量的封装,
8 Socket类
9 常用数据结构类
CString,CRect,CPoint等
五 第一个MFC程序
步骤:1 环境设置
1.1 修改头文件
1.2 在setting中增加MFC库支持
1.3增加应用程序类支持
2 增加应用程序类
2.1 增加CWinApp的子类
2.2 添加InitInstance函数
函数作用:完成应用程序初始化操作
2.3 定义CMyApp的全局变量
名字不固定
3 窗口
3.1 添加CFrameWnd的子类CMyFrame
3.2 在App的InitInstance函数中定义窗口对象
3.3 创建窗口并显示
3.4 将窗口设置成App的主窗口