MFC的消息流动

原创 2015年11月17日 22:48:29

MFC的消息流动

本文分析MFC4.0的消息流动,从注册消息处理函数到窗口接受到消息的处理过程;

MFC中MessageMap用到的数据类型

struct AFX_MSGMAP
{
    AFX_MSGMAP* pBaseMessageMap;
    AFX_MSGMAP_ENTRY* lpEntries;
};
struct AFX_MSGMAP_ENTRY // MFC 4.0 format
{
    UINT nMessage; // windows message
    UINT nCode; // control code or WM_NOTIFY code
    UINT nID; // control ID (or 0 for windows messages)
    UINT nLastID; // used for entries specifying a range of control id's
    UINT nSig; // signature type (action) or pointer to message #
    AFX_PMSG pfn; // routine to call (or special value)
};

基于Docment/View的窗口处理函数创建过程

最终只要是基于CWnd的类都将自己的窗口函数注册为AfxWndProc,注册过程如下
1.CWnd::CreateEx
2. AfxHookWindowCreate
3. AfxHookWindowCreate
4. _AfxCbtFilterHook
5. _AfxStandardSubclass((HWND)wParam)
6. AfxGetAfxWndProc()
7. AfxWndProc
消息流动如下
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MFC中关于基于对话框的应用程序的WM_COMMAND消息的流动路径

网上面很多关于WM_COMMAND消息在基于文档视图模型的APP中的流动方向的讲解,但是我在项目中做的都是基于对话框的APP,所以这里就只介绍WM_COMMAND在对话框中的流动方向。 如果对话框里...

<转>消息如何流动 ----------- 注意 GetMessageMap为虚函数

消息如何流动 ----------- 注意 GetMessageMap为虚函数  一、传统SDK程序的消息循环 在传统的SDK程序中,消息循环是很简单的,也许你不信,那我们就看看下面...

pjsip消息在模块与实例间的流动

一个模块会有多个实例,模块更像一个部门,而实例就是部门里的人。比如user_agent模块中有多个dlg实例。目前涉及的模块优先级有高到低依次是transaction, user_agent(dlg)...

MFC消息处理

  • 2013-08-01 11:38
  • 3.31MB
  • 下载

MFC组件消息及函数

  • 2012-10-03 17:55
  • 70KB
  • 下载

MFC应用程序中处理消息的顺序

转载自:http://hi.baidu.com/zxchao/blog/item/fd96648db87ae711b31bbac2.htmlMFC应用程序中处理消息的顺序1.AfxWndProc() ...

MFC消息响应测试

  • 2013-01-01 20:47
  • 4.71MB
  • 下载

mfc 自定义消息

  • 2013-07-05 09:17
  • 24KB
  • 下载

MFC所有WM消息和数据类型总结

hwnd 32位的窗口句柄。窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可 视对象的句柄(窗口、对话框、按钮、编辑框等)。message 用于区别其他消息的常量值,这些常量可以是Win...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)