![](https://csdnimg.cn/release/download_crawler_static/2561145/bg1.jpg)
1
《Visual C++从入门到精通(第二版)》的要点笔记
PrimBoy(zjylh@263.net,Tsinghua Univ), CopyLeft 2000.4
{ Ref: Michael J.Young, 仲潘等,Visual C++从入门到精通(第二版),电子工业出版社,1997.5 }
+文档类(CWinGreetDoc)负责存放程序数据和读取数据、写入磁盘文件。
+视图类(CWinGreetView)负责显示程序数据(屏幕、打印机)和处理用户输入。管理视图窗口。
+主帧窗口类(CMainFrame)管理主程序窗口,即包含窗口帧、标题条、菜单条和系统菜单的帧窗口。帧窗口还包
含最大化、最小化和关闭框以及工具条、状态条。
注意:视图类管理的视图窗口只是主帧窗口的空白部分(称主帧窗口的客户区)。视图窗口除了视图类明确显示
的图形和文字外没有别的可见元素。视图窗口是主帧窗口的子集,即它总在主帧窗口上的客户区边界内。
+应用程序类(CWinGreetApp):管理整个程序,即完成除了上述三类以外的一般任务,如初始化程序和完成最后
程序整理。
每个MFC Windows程序都生成一个CWinApp派生的类的实例,即theApp。
[] 一般用Get*()函数来让外界取得private成员(只读)。
[] 存放数据的类对象通常负责数据的磁盘读写。即它要提供Serialize()成员函数来操作自己的数据。OOP的一个
原则是对象操作自己的数据。(p234)
[] CEditView类用于存放文本的缓冲区最大为 40KB。 (p252)
[] 注意加入自己的成员变量,并运用它。
[] ToolBar、StatusBar的对象声明加在CMainFrame中 (p316)
[] 程序状态设置菜单的消息处理器加在CWinApp中 (p312)
< >
[]MFC程序运行过程:(p153-156)
1. CWinGreetApp theApp; /* 调用CWinApp构造器 */
2. CWinApp:WinMain()
{
InitInstance();
消息循环;
}
CWinGreetApp:InitInstance()
{
加入文档样板;
ParseCommandLine();
ProcessShellCommand(); /* 当命令行是空时,ProcessShellCommand()
调用CWinApp :: OnFileNew()生成新的空文档 */
}
/* OnFileNew()用文档样板生成CWinGreetDoc对象、CMainFrame对象、CWinGreetView
对象和相关的主帧窗口和视图窗口。主帧窗口使用的资源是由文档样板中存放的
资源标识符表示的 */
[]消息的响应(p163)
消息发送给主帧窗口。但MFC又重发给视图对象,按以下顺序处理,如果没有提供消息处理器,就重发到下一
个对象。
(0)视图对象(CWinGreetView)
(1)文档对象(CWinGreetDoc)
(2)主帧窗口对象(CMainFrame)
(3)应用程序对象(CWinGreetApp)
(4)接受最小缺省处理