MFC不只是可以基于对话框,而是有着更广泛的应用范围,只有多学习才能开拓眼界
文档/视类结构
MFC程序除了主框架窗口外,还有另外一个窗口就是视类窗口
(对应CView类,派生自CWnd类)。框架窗口是视类窗口的父窗口。
CTestDoc
类是一个文档类(类组织关系为CTestDoc:CDocument:CCmdTarget:CObject)。
通过这个结构把数据本身与它的显示分离开。
帮助对话框类CAboutDlg
(类组织关系为CAbout:CDialog:CWnd)提供一些与程序有关的信息,例如版本号。
MFC中使用的大部分函数名与相应的SDK函数名相同::
是作用域标识符,以::
开头的函数是全局函数。
窗口类对象和窗口
C++窗口类对象和窗口,不是一回事。它们之间惟一的关系是窗口类对象内部定义了一个窗口句柄成员变量,保存了与这个窗口类对象相关的那个窗口的句柄。窗口销毁时,其成员变量被赋NULL,与之对应的窗口类对象销毁与否,要看其生命周期是否结束。但窗口类对象销毁时,与之相关的窗口也将销毁。
对于一个CButton
对象,在定义之后(构造函数被调用后)就可以使用了;但同时作为一个窗口类对象,构造之后要产生这个窗口的话,就需要别的函数来完成初始化工作。
窗口创建时都会产生WM_CREATE
消息,CMainFrame类(主框架窗口)的OnCreate函数是用来响应这个消息的。
在定义类的成员变量名称时都以m_为前缀,表示是类的一个成员变量(member)
在生成窗口之后,还要调用函数显示出来。按钮的父窗口不同,其显示的位置也会有所差异。