MFC菜单命令COMMAND与UPDATE_COMMAND_UI的区别

来源:互联网 发布:朗读小说的软件 编辑:程序博客网 时间:2024/05/17 02:52

当单击菜单时,系统发出的都是WM_COMMAND消息,在这个消息的拓展参数wParam中,包含菜单的ID,用户可以通过这个ID来判断是那个菜单被单击了。而UPDATE_COMMAND_UI消息是当菜单需要重新绘制或更新时由系统发送。菜单时一格一格弹出来的,每弹出一格,发出一个UPDATE_COMMAND_UI消息,可以相应这个消息,设置菜单弹出的状态,比如打勾、打点、变灰等


注意:UPDATE_COMMAND_UI只能由拥有菜单的窗口发出


用户界面更新原理:

UPDATE_COMMAND_UI消息只适用于弹出是菜单的菜单命令,而对顶层菜单不起

作用。在显示弹出式菜单时,框架按视图类>>文档类>>框架类>>应用程序类的顺序发送

弹出式菜单的所有菜单命令的UPDATE_COMMAND_UI消息。如果菜单命令有个一更新

处理函数(即UPDATE_COMMAND_UI消息的处理函数),则它被调用进行更新;否则

框架检查COMMAND命令处理函数是否存在,果不存在,则使菜单项变灰。因此,为

了使一个菜单命令有效,必须为该菜单添加一个消息处理函数

当用户展开一个菜单时,每个菜单命令都需要知道它应该显示为何种状态(如允许、

静止)。菜单命令就是通过ON_UPDATE_COMMAND_UI处理函数来提供这个消息的处

理。当某个菜单被展开时,应用程序框架就会查找并调用各个菜单命令的

ON_UPDATE_COMMAND_UI处理函数,然后更具处理函数的内容来正确地显示各个菜

单命令

阅读全文
0 0
原创粉丝点击