vc++技术内幕(第四版)笔记(1~2章)

2016-02-19 16:18 7 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的vc++技术内幕(第四版)笔记(1~2章)懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】

第一章:Microsoft Windows 和 Visual C++

1,Windows应用程序中一定要有WinMain函数,用来完成某些特殊的任务,其中最主要的是创建应用次序的主窗口。

2,DOS下,所有次序的目标模块在创建过程中都被静态连接起来。而Windows允许动态连接,即一些特定结构的库(DLL)可以在运行过程中被装入和连接,并且被多个应用程序共享。

3,项目是一些相互关联的源文件的集合,这些源文件经过编译、连接,然后被组合在一起形成可执行的Wwindows应用程序或DLL。

4,几个重要Developer Studio创建的中间文件:
CLW (支持ClassWizard ) DSP (项目文件)
DSW (工作空间文件)  NCB (支持ClassView)
OPT (保持工作空间的配置) PLG (建立日志文件)

5,AppWizard是一个代码生成器,它会按照用户通过对话框指定的特性、类名、及源代码文件名来产生Windows应用程序工作架构。AppWizard所产生的代码只是一些最基本的代码,它完成的功能完全由应用程序的基类所决定。

第二章:Microsoft基本类库应用程序框架

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

1,按照惯例,MFC库类名用大写“C”打头。

2,类CMyApp的对象theApp就代表一个应用程序。当运行该应用程序的时候,WINDOWS自动调用程序框架内部的WinMain函数,WinMain函数会去查找该应用程序的全局构造对象(theApp),该对象是有CWinApp类派生类的对象。C++中,全局对象在主程序被运行之前就已经构造好了。

3,当WinMain发现该应用程序对象(theApp)时,会自动调用虚拟成员函数CWinApp::InitInstance(),该函数会进一步调用相应的函数来完成主窗口的构造和显示工作。由于基类CWinApp中不知道我们实际需要的什么样的窗口,所以我们必须在派生出的应用程序类CMyApp中重载InitInstance()函数(CMyApp::InitInstance()),由多态性,当调用CWinApp::InitInstance()时候,会自动转向MyApp::InitInstance().

4,WinMain函数调用完InitInstance()函数后,就调用CWinApp::Run函数,CWinApp::Run函数被隐藏在基类中负责传递应用程序的消息给相应的窗口,从而维护应用程序的运转。

5,关闭应用程序(对单一框架程序来说),首先CMyFrame 对象被删除,然后退出Run,进而退出WinMain,最后删除CMyApp对象(theApp)。

6,一些Windows类库在基类为鼠标事件消息以及其他一些标准消息定义一些虚函数,如果需要,派生类会对这些函数进行重载。
MFC库应用程序框架没有采用虚函数来处理Windows消息,而是通过一些宏来将特定的消息映射到派生类中相应的成员函数上。(原因:P21。C++类对程序中用到的每一个派生类都要求有一张虚函数分发表VTABLE,在BTABLE中每个虚函数都需要有一个4字节的入口项,而不管该函数会不会在派生类中被重载。)

MFC消息控件函数要求提供函数原型,函数体,以及在消息映射中的入口。

7,文档-视图结构将数据从用户对数据的观察中分离出来,这样就允许对同一数据可以有多个视图。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

MFC库应用程序中,文档和视图是由C++类的实例来描述的。

文档基类代码通常和FILE OPEN,FILE SAVE菜单项关联,而派生文档类则一般用来完成对文档对象数据的实际读写工作。

视图基类通常表示一个包含于框架窗口中的窗口,而派生视图类则常用来和稳当类相联系,负责应用程序的显示和打印机I/O。

派生视图类及其基类共同处理WINDOWS的消息,而MFC库则协调文档,视图,框架窗口,以及应用程序之间的相互作用关系,这种协调多用虚函数来实现。

文档对象既可以与一次可全部读入内存的磁盘文件相关联,也可以同数据库相关联。

来源:http://www.tulaoshi.com/n/20160219/1611642.html

延伸阅读
    第八篇:颜色和字体 由于种种原因,雷神有4、5天没有看一眼VC++了,所以在开始之前我又把前几篇笔记仔细的看了一遍,使自己能够进入最佳的学习状态。因为学习状态的好坏直接影响学习的效率,有时候我看一天的书,可实际掌握的内容却很少,不知大家是否和我一样?今天要学的是颜色和字体。终于要进入多彩的世界了,这...
     第六篇:映射模式 在此篇之前我们已经学会了在窗口显示图形,更准确的说是在窗口指定位置显示图形或文字,我们使用的坐标单位是象素,称之为设备坐标。看下面语句: pDC-Rectangle(CRect(0,0,200,200)); 画一个高和宽均为200个象素的方块,因为采用的是默认的MM_TEXT映射模式,所以在设备环境不一样...
第九篇:模式对话框和通用控件(上) 对话框是一个真正的窗口,它不但可以接受消息,而且可以被移动和关闭,还可以在它的客户区中进行绘图操作。对话框可以分为模式对话框和无模式对话框两种,两者区别是在对话框被关闭之前用户能否在同一应用程序的其他地方进行工作。举例说明:打开文件对话框便是典型的模式对话框,在你选择好要...
    第三篇:消息映射和视图类 在写了两篇笔记后有很多朋友给我发信,和我交流一些在学习过程中的问题。但由于我也是一个初学者,对一些问题自己也没有把握,所以实在不敢做答,但我会尽量尽我所能和大家一起研究,谢谢大家的鼓励和信任。 在开始先补充一下上一篇的内容“内容窗口的创建”,兼答天歌网友的问题(...
《求生之路》专家难度1带3电脑通关视频 第四章2   《暗黑破坏神3》法师专家模式求生之路经验 在前面的话:   当你选择专家模式的法师以后,你的升级之路,注定是坎坷的,提心吊胆的,随时会死在60前的。 千万不要随意的对任何一个小BOSS放松警惕,千万不要忽视ACT4的任何一个普通怪物。。。。 一切小蜘蛛,小狗,小老鼠,小...

经验教程

846

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部