标题:关于VC++中菜单消息的路由过程
只看楼主
dream698
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-8-10
 问题点数:0 回复次数:1 
关于VC++中菜单消息的路由过程
我们经常使用VC6.0 的菜单来完成某些任务。但是你有没有深究其路由的过程呢?
我们添加一个菜单,并在视类 文档类 框架类 应用程序(即:C*App类)添加他的消息响应函数时,它的执行顺序是什么?
顺序是:视类-->文档类-->框架类-->应用程序

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

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

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

不当之处,请提出。

你在提高,我也在进步。

[[it] 本帖最后由 dream698 于 2008-8-17 09:46 编辑 [/it]]
搜索更多相关主题的帖子: 菜单 路由 
2008-08-16 19:02
tsing_best
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-9-29
得分:0 
我觉得消息结构体就把问题说清楚了,应该是消息结构体链表头找起的吧。好像《深入浅出MFC》有说过。。。不知我的理解是否正确

2008-09-01 10:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-228631-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054242 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved