Chinaunix首页 | 论坛 | 博客
  • 博客访问: 249080
  • 博文数量: 83
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-22 10:11
文章分类
文章存档

2016年(2)

2014年(2)

2013年(65)

2012年(14)

我的朋友

分类: C/C++

2013-01-30 16:54:54

原文地址:MFC类库组成 作者:shoela950

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) |
给主人留下些什么吧!~~