凝聚性强、组织化强的类库就是Application Framework。一组合做无间的对象,彼此藉消息的流动而沟通,而且互相调用对方的函数以求完成任务,这就是Application Framework。函数
Application Framework是一组超级的类库,可以被称为Framework者必须是其中的类性质紧密咬合,互相呼应。spa
绝大部分类库,每每以一个或两个类,做为其它绝大部分类的基础,MFC也同样。CObject是万类之首,凡派生自CObject者,得以继承数个面向对象重要性质,包括RTTI(运行时类型识别)、Persistence(对象保存)、Dynamic Creation(动态建立)、Diagnostic(错误诊断)。指针
MFC支持的数据处理类(collection classes)有:对象
异常处理有关的MFC类有如下11种:blog
凡派生自CWnd的类才能收到WM_窗口消息(WM_COMMAND除外)。继承
所谓窗口handle和C++对象结盟,其实是CWnd对象有一个成员变量m_hWnd,就放着对应窗口handle。因此,只要有CWnd对象或CWnd对象指针,就能够得到其窗口handle。get
HWND hWnd = pWnd->m_hWnd;io
CCmdTarget是CWnd的父类。派生自它,类才可以处理命令消息WM_COMMAND。这个类是消息映射以及命令消息传递的大部分关键。class
Document/View的观念是但愿把数据的本体和数据的显示分开处理。因为文件产生之际,必须动态建立Document/View/Frame三种对象,因此又必须由所谓的Document Template管理之。Document Template扮演黏胶的角色,把Document 和View 和其Frame(外框窗口)胶黏在一起。基础
CDocument:当你为本身程序由CDocument派生出一个子类后,应该在其中加上成员变量,以容纳文件数据;并加上成员函数,负责修改文件内容以及读写文件。读写文件由虚函数Serialize负责。
下面是几个常见的Afx全局函数:
CObject和CRuntimeClass中封装了数个所谓的object services,包括“取得运行时的类信息(RTTI)”、Serialization(文件读写)、动态产生对象等等。全部派生自CObject的类,都继承这些机能。
MFC针对这些机能定义了一些宏:
MFC的消息映射与命令传递由如下宏完成:
MFC的大部分数据类型和通常的Win32程序所用的相同,下面是共用的数据类型:
下面是MFC独特的数据类型: