VC文章 VB文章
返回首页
当前位置: 主页 > 源码文档 > VC文章 >

Visual C++从入门到精通

时间:2010-02-23 11:24来源:未知 作者:admin 点击:
VC的书很多,可是一般都是教你怎么按部就班的用菜单、画个图形、显示位图,具体MFC的机制,其来龙去脉很少讲。刚开始学VC时,看了很多乱七八糟的烂书,到头来还是搞不清MFC的机制

VC的书很多,可是一般都是教你怎么按部就班的用菜单、画个图形、显示位图, 具体MFC的机制,其来龙去脉很少讲。刚开始学VC时,看了很多乱七八糟的烂书,到头来还是搞不清MFC的机制。不过,看了下面这本书之后,才有一种豁然开朗的感觉。有这样 一本学VC的好书,实在是读者的幸运。我感觉要是早点让我看到这本书,就不需走那么多弯路了。 
{ 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)接受最小缺省处理 
[]注意:利用继承的父类的成员函数。如: 
CView直接从CWnd MFC类继承,可以用所有CWnd的众多成员函数。 
[]文档样板 (p155) 
 用于存放程序文档类、主帧窗口类、视图类的信息、程序资源(菜单、 
图标和其他)的识别符。 
 程序首次开始运行和生成新文档时,它用文档样板生成(存放文档的)文档类 
对象,生成(显示文档的视图窗口的)视图类对象和提供(分帧视图窗口的主程序窗口 
的)主帧窗口类对象 
 其在CWinGreetApp:InitInstance()中加入: 
CWinGreetApp:InitInstance() 

 ... 
 CSingleDoc Template *pDocTemplate; 
 pDocTemplate = new CSingleDocTemplate( 
  IDR_MAINFRAEME, /* 识别符 */ 
  RUNTIME_CLASS(CWinGreetDoc), /* 文档类 */ 
  RUNTIME_CLASS(CMainFrame), /* 主帧窗口类 */ 
  RUNTIME_CLASS(CWinGreetView)); /* 视图类 */ (责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
推荐内容