1.Windows程序的运行本质:基于消息,事件驱动(Message Based,Event Driven).
2.程序调用GetMessage API循环获取消息,程序的生命靠它来推动.
MSG msg;
while (GetMessage(&msg, NULL, NULL, NULL)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
3.WinMain 的四个参数由操作系统传递进来.
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
4.TranslateMessage 是为了将键盘消息转化,DispatchMessage 会将消息传给窗口函数去处 理.DispatchMessage 经过USER 模块的协助,才把消息交到窗口函数.
5.Call back 函数,意思是指[在你的程序中,被Windows系统调用]的函数。这些函数虽然由你设计,但是永远不会也不该被你调用,它们是为Windows系统准备的.
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
6.WndPro函数的Switch的default必须调用:DefWindowProc,这是Windows内部预设的消息处理函数.
7.Message Map:消息或系统命令在列表中绑定通用格式的函数(函数指针),在WndPro中对消息或系统命令对比,调用相应的绑定函数.
8.Modal对话框的激活与结束,靠的是DialogBox和EndDialog两个API函数.处理过消息之后,应该传回TRUE;如果未处理消息,则应该传回FALSE.
9.执行线程的结束有两种情况,一种是寿终正寝(ExitThread),一种是未得善终(TerminateThread).
10.执行线程的优先权范围从0(最低)到31(最高).
11.由行为决定设计,怎么用从而怎么达到目的的设计结构.
12.[对象,封装,类][继承,衍生,子类继承父类所有的成员变量和函数][虚函数代表衍生,继承函数接口,变异函数内容]
13.调用父类别的函数,你必须使用scope resolution operator(::)明确指出.
14.(虚函数除外)调用到哪个函数,必须视指针的原始类型而定,与指针实际所指之对象无关.
15.如果你预期衍生类别有可能重新定义某一个成员函数,那么你就在基础类别中把此函数设为virtual.
16.相同的指令却唤起了不同的函数,这种性质称为Polymorphism(多态).Polymorphism的目的,就是要让处理[基础类别之对象]的程序代码,能够完全透通地继续适当处理[衍生类别之对象].
17.纯虚拟函数不需定义其实际动作,它的存在只是为了在衍生类别中被重新定义,只是为了提供一个多态接口.
18.虚拟函数衍生下去仍为虚拟函数,而且可以省略virtual 关键词.
19.静态Static成员变量在类外初始化,独立于对象之外.static 成员函数[没有this 参数]的这种性质,不需要借助任何对象,就可以被调用执行.
20.C++的template有两种,一种针对function,另一种针对class.
21.在程序的任何地方放置TRACE宏,例如:TRACE("Hello World");
22.CObject是万类之首,凡类别衍生自CObject者,得以继承数个对象导向重要性质.
23.AfxOutputDebugString 将字符串输往Debug调试器.
24.CWinApp代表程序本体.CFrameWnd代表一个主框窗口(Frame Window).
25.要把某个函数用作callback 函数,就必须告诉C++ 编译器,不要放this指针作为该函数的最后一个参数。两个方法可以做到这一点:1. 不要使用类别的成员函数(也就是说,要使用全域函数)做为callback 函数。2. 使用static 成员函数。也就是在函数前面加上static修饰词。
26.凡声明为static 的东西(不管函数或变量)都并不和对象结合在一起,它们是类别的一部份,不属于对象。
27.有关文件读写的动作在CDocument 的Serialize 函数进行,有关画面显示的动作在CView 的OnDraw或OnPaint 函数进行。
28.任何一个类别只要在声明时使用DECLARE_DYNAMIC或DECLARE_DYNCREATE 或DECLARE_SERIAL宏,就会拥有一个静态的(static)CRuntimeClass 内嵌对象。
29.执行线程函数的执行期,也就是该执行线程的生命期。

深入浅出MFC[摘记]的更多相关文章

  1. 评侯捷的<深入浅出MFC>和李久进的<MFC深入浅出>

    侯捷的<深入浅出mfc>相信大家都已经很熟悉了,论坛上也有很多介绍,这里我就不多说了. 而李久进的<mfc深入浅出>,听说的人可能就少得多.原因听说是这本书当时没有怎么宣传,而 ...

  2. 深入浅出MFC——Document-View深入探讨(五)

    1. MFC之所以为Application Framework,最重要的一个特征就是它能够将管理数据的程序代码和负责数据显示的程序代码分离开来,这种能力由MFC的Document/View提供.Doc ...

  3. 深入浅出MFC——MFC六大关键技术仿真(二)

    1. 仿真MFC目的:以MFC为例,学习application framework的内部运行.MFC六大关键技术: (1)MFC程序的初始化过程 (2)RTTI(Runtime Type Inform ...

  4. 《深入浅出MFC》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <深入浅出MFC>内含光盘一片,书中所有原始码与可执行文件尽在其中. 作者简介 侯俊杰,先生不知何许人也,闲静少言,不慕荣利.好读书,求甚解:每有 ...

  5. 《深入浅出MFC》系列之运行时类型识别(RTTI)

    /********************************************************************************** 发布日期:2017-11-13  ...

  6. 深入浅出MFC——MFC多线程程序设计(七)

    1. 从操作系统层面看线程——三个观念:模块(MDB).进程(PDB).线程(TDB) 2. “执行事实”发生在线程身上,而不在进程身上.也就是说,CPU调度单位是线程而非进程.调度器据以排序的,是每 ...

  7. 深入浅出MFC——消息映射与命令传递(六)

    1. 消息分类: 2. 万流归宗——Command Target(CCmdTarget): 3. "消息映射"是MFC内建的一个信息分派机制.通过三个宏(DECLARE_MESSA ...

  8. 深入浅出MFC——MFC骨干程序(四)

    1. 熟记MFC类层次结构: 2. AppWizard可以为我们制作出MFC程序骨干: 3. Document/View支撑你的应用程序:Document/View的价值在于,这些MFC类已经把一个应 ...

  9. 深入浅出MFC——MFC程序的生死因果(三)

    1. 本章主要目的:从MFC程序代码中检验出一个Windows程序原本该有的程序进入点(WinMain).窗口类注册(RegisterClass).窗口产生(CreateWindow).消息循环(Me ...

随机推荐

  1. sqlalchemy中文乱码问题解决方案

    本文参考http://firefish.blog.51cto.com/298258/112794/的解决方案 问题: 本文在Ubuntu上利用scrapy抓取数据写入mysql数据库时,用到sqlal ...

  2. RStudio中,出现中文乱码问题的解决方案

    RStudio中,出现中文乱码问题的解决方案解决步骤:1.设置RStudio文本显示的默认编码:RStudio菜单栏的Tools -> Global Options2.选择General -&g ...

  3. Oracle客户端配置

    1.  打开开发生产数据库系统,点击下载Oracle_12C_Client32,并且解压缩. 2.  找到文件下的setup.exe文件,并且执行. 3.  等待数秒,在如下界面中选择第二项,管理员, ...

  4. mac os中配置多个jdk(转载+)

    1.首先安装所有的JDk: * Mac自带了的JDK6,安装在目录:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/下. * JDK7,JDK8则 ...

  5. 2-st学习笔记

    2-ST是一种巧妙的建图模式....其实,主要是将互相限制的条件转化为有向图.实现时,将每个点拆成两点,对应这个点的两种取值,然后求强连通分量.由于每个点只能有一种取值,所以若强连通分量中某一个点拆成 ...

  6. 关于String str =new String("abc")和 String str = "abc"的比较

    String是一个非常常用的类,应该深入的去了解String 如: String str =new String("abc") String str1 = "abc&qu ...

  7. TensorFlow支持windows了

    (留坑)找个时间测试一下. 终于来了,TensorFlow 新增官方 Windows 支持

  8. RealSense开发-Session和SenseManager的几种创建方法

    从Intel RealSense 的SDK文档对其架构(如图1所示)的始描述可知,Session是SDK应用的主控模块,必须在所有模块操作之前创建,并且在所有模块注销后最后注销.SenseManage ...

  9. AC自动机小结

    专题链接 第一题--hdu2222 Keywords Search ac自动机的模板题,入门题.  题解 第二题--hdu2896 病毒侵袭   一类病毒的入门题,类似模板  题解 第三题--hdu3 ...

  10. 网易云音乐PC端刷曲快捷键

    文章首发于szhshp的第三边境研究所(szhshp.org), 转载请注明 网易云音乐PC端刷曲快捷键   好吧我承认我特别懒 云音乐其实做的还不错,FM推荐的算法明显比虾米好. 虾米可以听的曲子都 ...