zoukankan      html  css  js  c++  java
  • MFC 几大关键技术 自学笔记

    1. RTTI

    运行时类型识别:在程序执行过程中能够判断a对象是否是A类,返回true或者false;

    类别型录网:用来记录类之间的关系,以链表的形式记录必要的信息,供查询;

    CRnutimeClass:用来刻画类别型录中用来记录类信息的链表,包含类名,next指针、static first指针;

    宏定义DECLARE_DYNAMIC、IMPLEMENT_DYNAMIC 将CRuntimeClass添加到类中

    2.动态创建

    将对象的大小与创建函数都放到类别型录中,根据他们就可以在运行时创建对象。

    相关的宏:DECLARE_DYNCREATE、IMPLEMENT_DYNCREATE,在DECLARE_DYNAMIC基础之上增加了对象大小和创建函数

    顺着指向基类的指针寻找

    3.Persistence机制

    涉及到Document/View结构对文件的读写:Serialize

    每一个可读可写文件的类都要重写自己的Serailize类,负责自己数据的读写任务,还应该重载<<和>>,将数据倒到archive中(它是与文件缓冲区习习相关的缓冲区)

    相关的宏:DECLARE_SERIAL、IMPLEMENT_SERIAL 将serialize放到类中

    4.

    4.1 Message Mapping

    将消息与对应的处理函数对应起来

    相关宏:DECLARE_MESSAGE_MAP(.h); (.cpp) BEGIN_MESSAGE_MAP  ON_COMMAND()  END_MESSAGE_MAP()

    构建了一个消息传递网(如何构建的??)

    4.2 Command routing(消息路由)

    -Windows消息(WM_)往基类走

    -命令WM_COMMAND就不一定

    Run()中的AfxWndProc()是消息泵,最终调用pWnd->WindowProc(),依靠虚函数来实现消息路由

  • 相关阅读:
    (整理)SQLServer_DBA 工具
    (转)winform Form 淡入淡出效果
    (转)SQLServer_T-SQL 语句执行时间的查询
    (整理)IIS 7 503 "service unavailable" errors
    (转载)C#中使用GUID
    (转载)SQL Server 2005 如何启用xp_cmdshell组件
    设计模式之适配器
    jaxb 组装及解析xml
    springMvc 简单搭建
    设计模式之工厂模式
  • 原文地址:https://www.cnblogs.com/lp3318/p/6071635.html
Copyright © 2011-2022 走看看