1. MFC六大特点

■ MFC 程序的初始化过程

■ RTTI(Runtime Type Information)执行时期型别信息

DECLARE_DYNAMIC

struct CRuntimeClass
{
// Attributes
    LPCSTR m_lpszClassName;
    int m_nObjectSize;
    UINT m_wSchema; // schema number of the loaded class
    CObject* (PASCAL* m_pfnCreateObject)(); // NULL => abstract class
#ifdef _AFXDLL
    CRuntimeClass* (PASCAL* m_pfnGetBaseClass)();
#else
    CRuntimeClass* m_pBaseClass;
#endif

// Operations
    CObject* CreateObject();
    BOOL IsDerivedFrom(const CRuntimeClass* pBaseClass) const;

// dynamic name lookup and creation
    static CRuntimeClass* PASCAL FromName(LPCSTR lpszClassName);
    static CRuntimeClass* PASCAL FromName(LPCWSTR lpszClassName);
    static CObject* PASCAL CreateObject(LPCSTR lpszClassName);
    static CObject* PASCAL CreateObject(LPCWSTR lpszClassName);

// Implementation
    void Store(CArchive& ar) const;
    static CRuntimeClass* PASCAL Load(CArchive& ar, UINT* pwSchemaNum);

// CRuntimeClass objects linked together in simple list
    CRuntimeClass* m_pNextClass;       // linked list of registered classes
    const AFX_CLASSINIT* m_pClassInit;
};

■ Dynamic Creation 动态生成

DECLARE_DYNCREATE

■ Persistence 永续留存

■ Message Mapping 消息映射

消息映射表作法,把消息和其处理例程关联起来,将消息与表格中的元素比对,然后
调用对应的处理例程,这种动作我们也称之为消息映射(Message Mapping)。

注意:CWinThread 并不属于消息流动网的一份,父类消息映射表填CCmdTarget

■ Message Routing 消息绕行

3. MFC的生死因果

注意:应用程序一定要改写虚拟函数InitInstance,因为它在CWinApp 中只是个空函数,
没有任何内建(预设)动作 ;

CFrameWnd::Create 在产生窗口之前,会先引发窗口类别的注册动作

请注意,如果类别的成员函数是一个callback 函数, 你必须声明它为"static",才能把
C++ 编译器加诸于函数的一个隐藏参数this 去掉(请看方块批注)。

Application framework classes

这一部份最为人认知的便是Document/View,这也是使MFC 跻身application framework 的关键。Document/View 的观念是希望把资料的本体,和资料的显像分开处理。由于文 件产生之际,必须动态生成Document/View/Frame 三种对象,所以又必须有所谓的 Document Template 管理之。

■ CDocTemplate、CSingleDocTemplate、CMultiDocTemplate - Document Template 扮演 黏胶的角色,把Document 和View 和其Frame(外框窗口)胶黏在一块儿。

■ CSingleDocTemplate 一次只支持一种文件类型,CMultiDocTemplate 可同时支持多 种文件类型。注意,这和MDI 程序或SDI 程序无关,换句话说,MDI 程序 也可以使用CSingleDocTemplate,SDI 程序也可以使用CMultiDocTemplate。

深入浅出MFC-侯俊杰相关推荐

  1. 读侯俊杰的《深入浅出MFC》小记

    1.程序必须在产生窗口之前先利用API函数RegisterClass设定属性(我们称此操作为注册窗口类) 2.消息循环中的TranslateMessage是为了将键盘消息转化,DispatchMess ...

  2. 侯杰深入浅出MFC中CPP学习

    @font-face{ font-family:"Times New Roman"; } @font-face{ font-family:"宋体"; } @fo ...

  3. 《深入浅出MFC》观后有感

    <深入浅出MFC>观后有感 本文原创,如需转载,请注明出处! 好几年前我曾经买过这本书,知道它是本好书,在匆匆走马观看一遍后,便将它束之高阁,后来有友人借之,不想几经辗转,最终不知我的这本 ...

  4. 路漫漫其修远兮,吾将上下而求索——《深入浅出MFC》读后感

    终于读完侯俊杰的经典著作<深入浅出MFC>,虽然不甚了了,但终于可以庆幸自己已经窥得MFC巍峨宫殿的轮廓了. 这本被很多人奉为MFC"Bible"的著作,其实早在199 ...

  5. 《深入浅出MFC 》(第二版)简体中文版再次印刷5000册,欲购从速 (转)

    <深入浅出MFC >(第二版)简体中文版再次印刷5000册,欲购从速 (转)[@more@] 亲爱的读者朋友:您好 在您的热情鼓励和支持下,侯俊杰(侯捷)先生的<深入浅出MFC &g ...

  6. 不要看《深入浅出MFC》!

    开篇先声明一点,<深入浅出MFC>是一本不错的书,对于MFC原码的剖析,十分到位,特别是前面对于MFC六大关键技术的总结和演示程序,尤其精彩.那为什么我要说不要看这本书呢?     我是站 ...

  7. 玩转MFC文档视图架构编程1——深入浅出MFC文档/视图架构之基本概念深入浅出MFC文档/视图架构之文档

    原创地址: 深入浅出MFC文档/视图架构之基本概念 http://iis.xrtvu.com/Tech/ShowArticle.asp?ArticleID=276 深入浅出MFC文档/视图架构之文档模 ...

  8. 重提“不要看《深入浅出mfc》!”一文

    上次写了"不要看<深入浅出MFC>!"一文后,没想到会引起这么大的反响,看了大家的评论后,我觉得有些朋友误解了我的意思,我有必要在这里重新说一下. 首先就是为什么起这个 ...

  9. 在 console mode 中使用 C/C++ 编译器 (作者:侯俊杰)

    在 console mode 中使用 C/C++ 编译器 侯捷 1999.04.08 侯捷 1999.04.08 我总是鼓励 C/C++ 的学习者,在刚接触这个程式语言的时候,先以 console m ...

  10. 21、深入浅出MFC学习笔记,Application Framework简介

    1.Application Framework是一个完整的程序模型:是一组合作无间的对象,彼此藉消息的流动而沟通,并且互相调用对方的函数以求完成任务.<?xml:namespace prefix ...

最新文章

  1. MySQL-数据库三大范式
  2. 机器人抓矸石_基于机器视觉的多机械臂煤矸石分拣机器人系统研究
  3. as3.0 比较两个数组
  4. 字节跳动攻城狮: 我整理了很久的Python面试指南,请查收!
  5. 30道MySQL基础面试题
  6. 基于 WebGL 的 HTML5 3D 工控隧道可视化系统
  7. 110个oracle常用函数总结(7),oracle110个最常用函数
  8. 关于https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/的部分内容
  9. python创建一个字典、其中值为1_从2个列表创建一个字典,其中一个作为键,另一个作为python中的值...
  10. python使用list方法,将迭代器转换为列表后,再次循环打印迭代器输出为空
  11. Excel计算1-12月的销售累计额
  12. 从基本组件到结构创新,67页论文解读深度卷积神经网络架构
  13. HTML5、css3、js实现3D相册
  14. php-resque消息队列
  15. Excel VBA: 自动生成巡检报表并通过邮件定时发送
  16. 牛客网第二场I--car(简单图论)
  17. Give up sending metadata request since no node is available
  18. 2022-2027年(新版)中国LCP行业发展前景及需求规模预测报告
  19. Pytorch混合精度训练
  20. 衡山 22/11/27 vue4

热门文章

  1. python spark教程菜鸟教程_菜鸟教程hadoop-hadoop入门教程
  2. 挂载Linux镜像文件,使用镜像文件安装依赖
  3. 专业音响常用测试软件,音响师怎么测试音响?离不开这几款音频处理软件!
  4. Oracle OCP和MySQL OCP认证考试内容有哪些?
  5. python+Flask 返回视频并在前端播放
  6. DB2 客户端下载地址
  7. Sql基本语句增删改查
  8. 使用ColorUI组件
  9. 【极客】神器——常用的一些小工具
  10. 顺序栈基本操作代码实现