| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 559 人关注过本帖
标题:关于VC++中菜单消息的路由过程
收藏  订阅  推荐  打印 
本主题由 静夜思 于 2008-8-17 00:17 鉴定为原创并加为精华
dream698
Rank: 1
等级:新手上路
帖子:17
积分:442
注册:2008-8-10
关于VC++中菜单消息的路由过程

我们经常使用VC6.0 的菜单来完成某些任务。但是你有没有深究其路由的过程呢?
我们添加一个菜单,并在视类 文档类 框架类 应用程序(即:C*App类)添加他的消息响应函数时,它的执行顺序是什么?
顺序是:视类-->文档类-->框架类-->应用程序

Windows 的消息分为三类:
标准消息:
除WM_COMMAND 之外的,以WM_开头的消息。
命令消息:
来自菜单,工具栏,加速键(快捷键)的消息
通知消息:
由控件产生的(如按钮)

而命令消息,通知消息只能被从CCmdTarget派生的类处理,不能接受标准消息。标准消息由从CWnd派生的类处理。

当单击命令菜单时,首先接收消息的是框架类,然后框架类交给视类,视类根据消息映射机制看能否处理,不能则交给文档类。
文档类处理过程同视类。假如不能处理,则交给视类,由视类交给框架类,框架类根据消息映射机制看能够处理。不能则交给应用程序类处理。

不当之处,请提出。

你在提高,我也在进步。

[ 本帖最后由 dream698 于 2008-8-17 09:46 编辑 ]
搜索更多相关主题的帖子: 菜单  路由  
2008-8-16 19:02
tsing_best
Rank: 1
等级:新手上路
帖子:34
积分:456
注册:2007-9-29

我觉得消息结构体就把问题说清楚了,应该是消息结构体链表头找起的吧。好像《深入浅出MFC》有说过。。。不知我的理解是否正确

2008-9-1 10:46
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.055930 second(s), 10 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved