爱悠闲 > MFC 消息机制

MFC 消息机制

分类: C++  |  标签: C++  |  作者: konqi 相关  |  发布日期 : 2014-11-11  |  热度 : 445°

1、消息响应过程:消息---->窗体句柄--->C++对象与窗口句柄对照表--->C++对象--->C++对象所属类的基类--->WindowProc函数(窗口过程函数)--->消息路由OnWndMsg--->需找消息对应响应函数---->查找子类头文件的DECLARE_MESSAGE_MAP()是否有相应的消息响应函数原型声明---->到子类的源文件的BEGIN_MESSAGE_MAP和END_MESSAGE_MAP()之间是否有响应的消息映射宏;

2、消息和对应的响应函数之间的建立:

源文件的BEGIN_MESSAGE_MAP和END_MESSAGE_MAP()之间:

普通消息:ON_COMMAND(消息标识, 消息处理函数名);其中消息标识可以自定义。

标准消息:ON_WM_XXX(),如ON_WM_CREATE(),关联性在CWnd中声明,如ON_WM_CREATE() :

#define ON_WM_CREATE() \
{ WM_CREATE, 0, 0, 0, AfxSig_is, \
(AFX_PMSG) (AFX_PMSGW) \
(static_cast< int (AFX_MSG_CALL CWnd::*)(LPCREATESTRUCT) > ( &ThisClass :: OnCreate)) }

头文件的DECLARE_MESSAGE_MAP()

普通消息:afx_msg void 消息处理函数名(参数);

标准消息:如:afx_msg int  OnCreate(LPCREATESTRUCT lpCreateStruct);