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消息流动的内部实现

消息的一生神秘而漫长,期间曲折多为人所不知。今天就让我们一起“撩”一下这位高冷的神秘妹纸吧。 事实上,MFC中利用hook技术,把看似无关的操作关联了起来。所谓hook(钩子)是Windows中一种...
  • wzxq123
  • wzxq123
  • 2016年07月31日 22:18
  • 891

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

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

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

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

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

消息如何流动 ----------- 注意 GetMessageMap为虚函数  一、传统SDK程序的消息循环 在传统的SDK程序中,消息循环是很简单的,也许你不信,那我们就看看下面...
  • zeng133
  • zeng133
  • 2012年04月25日 15:52
  • 471

MFC消息映射

  • 2017年12月05日 21:45
  • 7KB
  • 下载

基于MFC消息相应的五子棋简单实现

  • 2017年11月03日 13:03
  • 23.08MB
  • 下载

转《MFC对话框消息传递顺序》

[cpp] view plaincopy LRESULT CALLBACK AfxWndProc(HWND hWnd, UINT nMsg, WPARAM wPara...
  • hcbunny
  • hcbunny
  • 2014年07月01日 10:37
  • 539

MFC消息处理

  • 2013年08月01日 11:38
  • 3.31MB
  • 下载

MFC组件消息及函数

  • 2012年10月03日 17:55
  • 70KB
  • 下载

进程间通讯—MFC三种消息传递数据

MFC消息类型:消息前缀:wm(系统消息),rm(注册消息),um(自定义消息) //自定义消息 void CServerDlg::OnBnClickedButtonUserMessage(...
  • nyzdmc
  • nyzdmc
  • 2017年12月09日 11:41
  • 10
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC的消息流动
举报原因:
原因补充:

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