龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

关于VC++中菜单消息的路由过程

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
我们经常使用VC6.0 的菜单来完成某些任务。但是你有没有深究其路由的过程呢? 我们添加一个菜单,并在视类 文档类 框架类 应用程序(即:C*App类)添加他的消息响应函数时,它的执

我们经常使用VC6.0 的菜单来完成某些任务。但是你有没有深究其路由的过程呢?

我们添加一个菜单,并在视类 文档类 框架类 应用程序(即:C*App类)添加他的消息响应函数时,它的执行顺序是什么?

顺序是:视类-->文档类-->框架类-->应用程序

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

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

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

文档类处理过程同视类。假如不能处理,则交给视类,由视类交给框架类,框架类根据消息映射机制看能够处理。不能则交给应用程序类处理。

不当之处,请提出。

你在提高,我也在进步。

精彩图集

赞助商链接