首页 > 代码库 > MFC 几大关键技术 自学笔记

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(),依靠虚函数来实现消息路由

 

MFC 几大关键技术 自学笔记