所需头文件:#include
1、根类:CObject类
2、应用程序体系结构类
(1)命令相关类:CCmdTarget
MFC所有具有消息映射属性的类的基类,消息映射规定了当一对对象接受消息命令时,应该调用哪个函数对消息进行处理。
(2)窗口应用程序类:CWinApp类
每个应用程序只有一个应用程序类,用于与其他对象相互协调,该类封装了初始化、运行、终止应用程序的代码。
(3)文档类、视图类及文档模版类
文档对象由文档模版对象创建,管理应用程序的数据。视图对象表示一个窗口的客户区,显示文档数据并允许用户与之交互。这些模板及基类有CDocTemplate类(协调文档、视图与框架窗口的创建),CDocument类(应用程序专用文档基类),CView类(显示文档数据的应用程序专有的视图的基类)
(4)线程基类:CWinThread类
所有线程的基类,直接使用就行。
3、可视对象类
(1)窗口类:CWnd类(MFC所有窗口的基本功能)
派生类
A、CFrameWnd类:框架窗口类(单文档)
B、CMDIFrameWnd类:多文档框架窗口类
C、CMDIChildWnd类:多文档那个框架窗口类
(2)视图类:CView类(框架窗口的客户区和显示文档数据并接受输入的客户区)
派生类
A、CScrollView类:具有滚动功能的视图的基类
B、CFormView类:其布局在对话框资源中定义的滚动视图
C、CEditView类:具有文本编辑、查找、替换和滚动功能的视图
(3)对话框类
A、CFileDialog类:提供打开或保存一个文件的标准对话框
B、CColorDialog类:提供选择一种颜色的标准对话框
C、CFontDialog类:提供选择一种字体的标准对话框
D、CPrintDialog类:提供打印一个文件的标准对话框
E、CFindReplaceDialog类:提供一个查找并替换操作的标准对话框
F、CDialog类:可建立模态或非模态对话框
(4)菜单类:CMenu类
(5)控件类
A、CStatic类:静态文本控件类
B、CButton类:按钮控件窗口类
C、CEdit类:编辑控件窗口类
D、CRichEdit类:多信息编辑控件
E、CScrollBar类:滚动条控件窗口
F、CProgressCtrl类:进度条控件窗口
G、CSliderCtrl类:滑块控件窗口
H、CListBox类:列表框控件窗口
I、CComboBox类:组合框控件窗口(列表框+组合框)
J、CBitmapButton类:带有位图而非文字的按钮
K、CSpinButtonCtrl类:带有一个双向箭头的按钮
L、CAnimateCtrl类:动画控件窗口
M、CToolTipCtrl类:一个小的弹出式窗口
N、CHotKeyCtrl类:热键控件窗口
(6)控件条类:CControlBar类
A、CStatusBar类:状态条控件窗口的基类
B、CToolBar类:工具条控件窗口
C、CDialogBar类:控件条形式的非模态对话框
(7)绘图对象类:CGdiObject类
A、CBitmap:封装一个GDI位图,提供一个草作位图的接口
B、CBrush类:封装一个GDI画刷,可被选择为设备描述表的当前画刷
C、CFont类:封装一种GDI字体,可被选择为设备描述表的当前字体
D、CPalette:封装一个GDI调色板,用作应用程序和彩色输出设备如显示器之间的接口
E、CPen类:封装一种GDI画笔,可被选择为设备描述表的当前画笔
F、CRgn类:封装GDI域,用于操作窗口内的椭圆或多边形域
(8)设备描述表类:CDC类
A、CPaintDC类:显示描述表
B、CClientDC类:窗口客户区的显示描述类
C、CWindowDC类:整个窗口的显示描述表(客户区+框架区)
D、CMetaFileDC类:Windows元文件的设备描述表
4、通用类
(1)文件类:CFile类和CAchive类(编写用户自己的输入/输出处理函数)
【1】CFile类:提供访问二进制磁盘文件的总接口
【2】CMenFile类:提供访问驻内存文件的总接口
【3】CStdioFile类:提供访问缓存磁盘文件的总接口
【4】CAchive类:与CFile对象一起通过串行化实现对象的永久存储
(2)异常类:CException类(所有异常情况的基类)
【1】CAchiveException类:归档异常
【2】CFileException类:有关文件的异常
【3】CMemoryException类:内存异常
【4】CNotSupportedException类:使用不支持特征产生的异常
【5】CResourceException类:装载Windows资源失败产生的异常
(3)模板收集类
【1】、CArray类:将元素储存在数组中
【2】、CMap类:将键映射到值
【3】、CList类:将元素存储在一链表中
【4】、CTypedPtrList类:将对象指针存储在一链表中的类型
【5】、CTypedPtrArray类:将对象指针存储在一数组中的类型
【6】、CTypedPtrMap类:将键映射到值的类型,键和值都为指针
5、OLE类(对象连接与嵌入):普通类、客户类、服务器类
普通类:COleDocument、COleItem、COleException
客户类:COleClientDoc、COleClientItem
服务器类:COleServer,COleTemplate、COleServerDoc、COleServerItem
6、ODBC数据库类
(1)CDataBase类:封装对一数据源的连接,通过此链接应用程序可在该数据源上进行操作
(2)CRecordset类:封装从一数据源选出的一组记录
(3)CRecordView类:提供直接连接一记录集对象的格式视图
(4)CFileExchange类:提供上下文信息
(5)CLongBinary:封装一存储句柄,用于存储二进制对象
(6)CDBException:对数据存取处理过程中失败产生的异常
附注:1、消息结构
typedef struct tagMSG
{
HWND hwnd;
UINT message
WPARAM mParam;
LPARAM lParam;
DWORD time;
POIT pt;
}MSG,*PMSG;
2、消息循环
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
3、Windows窗口结构
typedef struct{
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hIstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
}WNDCLASS,*PWNDCLASS;
4、注册窗口(BOOL RegisterClass(&wndclasses))
5、创建窗口(hwd=CreateWindow(注册窗口类名,窗口名,窗口类型,窗口位置大小,菜单资源,父窗口,拥有此窗口的应用程序句柄,窗口使用额外数据))
6、窗口使用与更新(ShowWindow(句柄,SW_SHOW) UpdateWindow(句柄))