AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VC编程

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

51自学网 2015-08-30 http://www.51zixue.net

原帖及讨论:http://bbs.bccn.net/thread-228631-1-1.html

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

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

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

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

不当之处,请提出。

你在提高,我也在进步。

 

 

 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,51zixue.net不保证资料的完整性。
上一篇:OpenGL编程轻松入门之二次几何体  下一篇:谈 自动事件 和 手工事件 的区别