MFC类库组成
1. 基类CObject类
MFC的抽象类基类,提供了很多公共操作,包括运行时类信息支持,动态对象创建,串行化支持,对象诊断输出等
1)支持运行时类信息支持
定义类时,在类说明中使用DECLARE_DYNAMIC宏
类实现文件中,使用IMPLEMENT_DYNAMIC宏
2)支持动态对象创建
定义一个不带参数的构造函数
定义类时,在类说明中使用DECLARE_DYNCREATE宏
类实现文件中,使用IMPLEMENT_DYNCREATE宏
使用时先通过RUNTIME_CLASS得到类的RunTime信息,然后使用CRuntimeClass的成员函数CreateObject创建该类对象
3)支持串行化
定义一个不带参数的构造函数
定义类时,在类说明中使用DECLARE_SERIAL宏
类实现文件中,使用IMPLEMENT_SERIAL宏
重载Serialize成员函数,并串行化派生类的数据成员
运行时类信息的支持,动态对象创建,串行化支持这三个层次依次升高,如果对后面的功能支持,必定对前面的功能支持。
4)支持对象诊断化输出,可以执行有效性检查,并把状态信息显示到调试窗口
2. 应用程序结构类和窗口类
1) 命令相关类CCmdTarget是CObject的直接子类,是所有具备消息映射属性类的基类
2) 文档类CDocument用于应用程序数据的管理
3) 文档模板类CDocTemplate用于创建文档,视图和框架,包括单文档界面(SDI)文档模板(CSingleDocTemplate)和多文档界面(MDI)文档模板CMultiDocTemplate
4) 线程基类CWinThread提供所有与线程有关的基本操作,可以直接使用
5) 窗口应用程序类CWinApp是CWinThread的直接子类,封装应用程序初始化,运行,终止等代码。每个应用程序只有一个应用程序对象,该类对象由类CWinApp的派生类创建,实现和其他对象的协调
窗口类CWnd是CCmdTarget的直接子类,提供了MFC应用程序窗口类的基本功能。创建Windows窗口要分两步:首先创建CWnd类的对象,然后调用函数Create建立Windows窗口并与CWnd类对象连接。框架窗口类,对话框类,视图类,控件类是其重要的子类
6) 框架窗口类CFrameWnd是SDI应用程序主框架窗口的基类,而CMDIFrameWnd是MDI应用程序主框架窗口的基类,多文档框架窗口类CMDIChildWnd是MDI应用程序文档框架窗口的基类
7) 对话框类CDialog支持对话框的全部公共操作,其子类主要包括对话框颜色选择类CColorDialog,文件选择类CFileDialog,字体选择类CFontDialog等
8) 视图类CView用于显示文档数据并接受用户输入数据
9) 控件类包括静态文本类CStatic,按钮类CButton,编辑框类CEdit,列表框类CListBox,组合框类CComboBox,滚动条类CScrollBar等。
3. 异常类Cexception
Cexception所有Windows应用程序异常情况的基类
|
A base class for resource-critical MFC exceptions |
|
Invalid argument exception condition |
|
Out-of-memory exception |
|
Request for an unsupported operation |
|
Archive-specific exception |
|
File-specific exception |
|
Windows resource not found or not createable |
|
OLE exception |
|
Database exception (that is, exception conditions arising for MFC database classes based on Open Database Connectivity) |
|
OLE dispatch (automation) exception |
|
Exception that indicates that a resource could not be found |
|
Data access object exception (that is, exception conditions arising for DAO classes) |
|
Internet exception (that is, exception conditions arising for Internet classes). |
4. 文件相关类
类CFile和类CArchive是文件操作最重要的两个类
1)类CFile提供访问二进制磁盘文件的总接口
2)类CMemFile提供访问内存文件的总接口
3)类CStdioFile提供访问缓存磁盘文件的总接口
4)类CArchive配合CFile类对象完成串行化数据读写,类CArchive不是类CObject的派生类
5. 绘图相关类
主要由绘图对象类CGdiObject和设备环境类CDC组成
1)绘图类CGdiObject,用于创建基本绘图对象
CGdiObject
|-----类CPen,封装画笔对象
|-----类CBrush,封装画刷对象
|-----类CFont,封装字体对象
|-----类CRgn,封装区域对象
|-----类CBitbmp,封装位图对象
|-----类CPalette,封装调色板
2)设备环境类CDC,用于提供映像函数,绘图工具函数,区域函数等,结合绘图对象完成绘图操作
CDC
|-----类CPaintDC,构造和析构窗口设备环境
|-----类CClientDC,窗口客户区设备环境操作
|-----类CWindowsDC,整个窗口设备环境操作
|-----类CMetaFileDC,Windows元文件设备环境操作
6. 数据库类
Windows支持由ODBC数据库支持类和DAO数据库支持类组成
1)ODBC数据库支持类
----类CDataBase,提供对某一数据源的连接,通过该链接应用程序对该数据源进行操作
----类CRecordset,提供从某一数据源选择一组记录的操作
2)DAO数据库支持类
----类CDAODataBase,提供对DAO数据源的连接
----类CDAORecordset,提供从DAO数据源选择一组记录的操作
7. 基本数据类
非CObject派生类,提供简单数据类型的定义与使用
----类CPoint,类似POINT结构,提供成员函数操作点对象
----类CRect,类似RECT结构,提供成员函数操作矩形对象
----类CSize,类似SIZE结构
----类CString,提供字符串操作
----类CTime,基于格林威治标准时间提供绝对时间
----类CTimeSpan,提供相对时间跨度
阅读(1787) | 评论(0) | 转发(0) |