VC++向导生成的单文档程序包含4个类(工程名MFCTest),分别是CMainFram,CMFCTestApp,CMFCTestDoc,CMFCTestView.
CMFCTestApp类:
通过CMFCTestApp theApp全局对象为程序提供入口函数,并提供相应的管理功能能够。
继承关系:
CMFCTestApp <-- CWinApp <-- CWinThread <-- CCmdTarget <-- CObject
CMainFram类:
CMainFram类提供窗口类的注册、创建,显示更新、进入消息循环等功能。可以通过CMainFram类的修改窗体外观等等。
继承关系:
CMainFram <-- CFramWnd <-- CWnd <-- CCmdTarget <-- CObject
CMFCTestDoc类,CMFCTestView类:
CMFCTestDoc类负责数据加载等功能。
CMFCTestView类负责数据的显示,修改等功能。
CMFCTestDoc <-- CDocument <-- CCmdTarget <-- CObject
CMFCTestView <-- CWnd <-- CCmdTarget <-- CObject
Windows消息的分类
标准消息:除了WM_COMMAND以外的WM_开头的消息都是标准消息,所有从CWnd派生的类都可以接收到这类消息。
命令消息:来至菜单、加速键、工具栏按钮等的消息,这类消息都是以WM_COMMAND形式呈现,在MFC中通过菜单、加速键、工具栏按钮等的ID来进行区分。
在SDK编程中,通过消息的wParam参数进行识别。从CCmdTarget派生的类都可以接收到该类消息。
通告消息:(Notify)又控件产生的消息,如:按钮单击、列表框选择等都会产生。目的是为了向父窗体通知其事件的发生。这类消息也是通WM_COMMAND 形式呈现。从CCmdTarget派生的类都可以接收到该类消息。
在MFC向导创建的程序中,CMFCTestApp类、CMFCTestDoc类派生自CCmdTarget类,可以接收菜单、工具栏的命令消息。不能接收标准消息。
CMFCTestView类和CMainFrame类派生自CWnd类,所以既可以接收所有消息。