首页 > 代码库 > c++对MFC消息映射机制和运行时类型识别的理解

c++对MFC消息映射机制和运行时类型识别的理解

对MFC消息映射机制和运行时类型识别的理解  

 

 
 

MFC消息映射机制的理解

MFC中派生于Cobject的每个类都有一个消息映射表,所有MFC窗口都有一个同样的窗口过程AfxWndProc()AfxWndProc的参数列表中有一个是窗口句柄,在AfxWndProc函数中将句柄(HWND)转换成了窗口指针(CWnd*),通过这个窗口指针就可以获得该窗口的消息映射表。对于WM_COMMAND这类特殊消息,将依据C++的虚函数多态机制来决定调用哪个类的函数。

 

MFC运行时类型识别的理解

定义一个CRuntimeClass类,这个类用于存储其它类的信息,如类名、基类信息等。每一个支持运行时类型识别的类都有一个静态成员CRuntimeClass。由于类的静态成员只属于类,在内存中只有一份,为所有类对象共享,故可将静态成员CRuntimeClass作为类的类型识别依据。同时CRuntimeClass中记录某个类的基类的类型,因些可以用于判断某个子类是否是某个基类

c++对MFC消息映射机制和运行时类型识别的理解