映射:通过declare_map宏  begin_message_map 与end_message_map完成

路由:通过CcmdMsg 完成。

控件通知消息(WM_****)与命令消息(WM_COMMAND消息)的路由过程不一致,如Win32程序存在windowProc函数,然后其内部实现中存在控件通知消息和命令消息的判断(如下),控件通知消息不会进入OnCommand函数(OnCommand函数实现中存在CcmdMsg函数),也就不会进出CcmdMsg函数,相反,WM_COMMAND消息会进入CcmdMsg函数,从而完成诡异的消息路由过程。

 1 void  WindowProc(){
 2    if(nMsg == WM_COMMAND){
 3            OnCommand();
 4       return DefWindowProc();
 5    }
 6
 7 }
 8
 9
10 /// 因为windowProc是虚函数,当指定类没有调用时,会调用父类的windowProc,这样完成消息往父类推去的原理。

控件消息(直接把消息往父类推去):CView  --> CWnd  -->CCmdTarget
                               CFrameWnd  -->CWnd  -->  CCmdTarget

命令消息(不一样的消息路由过程):CView -->CWnd --> CCmdTarget
                                     -->CDocument  ---> CCmdTarget
       
 CFrameWnd  --> CView -->CWnd --> CCmdTarget
                   --> CDocument  ---> CCmdTarget
            --> CWnd --> CCmdTarget
                   --> CWinApp-->CCmdTarget

转载于:https://www.cnblogs.com/xuxu8511/archive/2012/10/21/2732898.html

消息映射与消息路由原理相关推荐

  1. Windows消息映射及消息发送(SendMess、PostMess)实现

    最近在看linux系统书籍看到消息调度方面,便动手封装一个类似MFC简易的消息发送框架(参考实例,没有窗口句柄). 关于框架设计的几点介绍:     1.设计采用了自动释放消息节点方式(增加虚析构函数 ...

  2. 【MFC】MFC消息映射(二)

    00. 目录 文章目录 00. 目录 01. 概述 02. 消息映射宏 2.1 BEGIN_MESSAGE_MAP 2.2 DECLARE_MESSAGE_MAP 2.3 END_MESSAGE_MA ...

  3. MFC 教程【4_消息映射的实现】

    消息映射的实现 Windows消息概述 Windows应用程序的输入由Windows系统以消息的形式发送给应用程序的窗口.这些窗口通过窗口过程来接收和处理消息,然后把控制返还给Windows. 消息的 ...

  4. 【MFC】MFC消息映射

    00. 目录 文章目录 00. 目录 01. 概述 02. 消息映射宏 2.1 BEGIN_MESSAGE_MAP 2.2 DECLARE_MESSAGE_MAP 2.3 END_MESSAGE_MA ...

  5. 【转】MFC消息映射详解(整理转载)

    消息:主要指由用户操作而向应用程序发出的信息,也包括操作系统内部产生的消息.例如,单击鼠标左按钮,windows将产WM_LBUTTONDOWN消息,而释放鼠标左按钮将产生WM_LBUTTONUP消息 ...

  6. MFc消息映射机制理解

    何谓消息.消息处理函数.消息映射? 消息简单的说就是指通过输入设备向程序发出指令要执行某个操作.具体的某个操作是你的一系列代码.称为消息处理函数.在SDK中消息其实非常容易理解,当窗口建立后便会有一个 ...

  7. 【MFC系列-第9天】MFC消息映射机制的原理

    关注公号[逆向通信猿]更精彩!!! 第9天 MFC消息映射机制的原理 9.1 对话框常用的回调函数 a)窗口创建时的消息和虚函数包括:WM_CREATE,WM_INITDIALOG,和PreSubcl ...

  8. VC++/MFC消息映射机制(1):MFC消息映射原理

    VC++/MFC消息映射机制(1):模仿MFC的消息映射原理 本文为原创文章,转载请注明出处,或注明转载自"黄邦勇帅(原名:黄勇) <C++语法详解>网盘地址:https://p ...

  9. JAVA消息服务JMS规范及原理详解

    一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进 ...

  10. 消息中间件:RocketMQ 介绍(特性、术语、原理、优缺点、消息顺序、消息重复)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 消息中间件的作用 1. 应用解耦 2. 异步处理 比如用户注册场景,注册主流程完成以后,需要调用邮件 ...

最新文章

  1. 20、30、40岁年轻人,2020年的建议 转载
  2. 深度优先搜索(DFS)相关习题
  3. 面向企业级前端应用的开发框架 UI5 的发展简史介绍
  4. Bash Shell学习笔记四
  5. couchbase_具有Rx-Java的Couchbase Java SDK
  6. 2020年中国互联网租车报告
  7. 译文 | 与TensorFlow的第一次接触 第三章:聚类
  8. spark基础之基于yarn两种提交模式分析
  9. Javascript实现视频文件播放功能
  10. 本地缓存下载文件,download的二次封装
  11. 肯德尔系数怎么分析_如何通过修改数据提高肯德尔系数?
  12. GitHub 开源神器 Bark模型,让文本转语音更简单
  13. 开发者大会优先谈云,对于微软Win10还重要吗
  14. watermark-dom 添加水印使用方法
  15. 卸载亚信的安全杀毒软件
  16. 当前计算机什么专业好就业找工作,计算机哪个专业最好就业
  17. 配置NTP时间客户端
  18. 如何同时对多张图片进行批量裁剪、批量旋转方向
  19. jQuery 的运行机制(How jQuery Works)
  20. java毕业设计——基于java+Socket+sqlserver的办公自动化系统设计与实现(毕业论文+程序源码)——办公自动化系统

热门文章

  1. 拜托!你只会用 ! = null 判空?
  2. 阿里“拆台”,中台真的不香了?
  3. 系统架构设计理论与原则、负载均衡及高可用系统设计速记
  4. 架构师必备之最全最系统的 Android 界面性能调优资料
  5. 来几个 9 块 9 好吃零食
  6. python爬虫百度翻译997_python爬取百度翻译返回:{'error': 997, 'from': 'zh', 'to': 'en', ......
  7. [bzoj1033] [ZJOI2008]杀蚂蚁 Big MoNI
  8. sql语句回忆录1-多表连接子查询
  9. 数据结构之-冒泡排序
  10. 我碰到的到现在为止,还没有找到比较好的解决方法的sps问题