消息响应COMMAND 和 UPDATE_COMMAND_UI的区别,使用范围的区别,使用对象的区别,等等方面的。

UPDATE_COMMAND_UI是否仅仅只用于使菜单变灰、或者在菜单项里面打勾两项功能?... UPDATE_COMMAND_UI是否仅仅只用于使菜单变灰、或者在菜单项里面打勾两项功能? 展开
 我来答
laden666666
2010-11-02 · TA获得超过344个赞
知道答主
回答量:74
采纳率:0%
帮助的人:46万
展开全部
简单的说ON_COMMAND是点了按钮或菜单项后的响应消息,
ON_UPDATE_COMMAND_UI是用来表示对应的按钮和菜单项的状态的响应消息.

比如WINDOWS自带的记事本程序,它的"格式"菜单下有个"自动换行",那么在编写记事本这个程序时,对文本进行自动换行或不自动换行的操作就要放在ON_COMMAND消息响应函数里,而"自动换行"菜单项左边是否打勾的操作则放在ON_UPDATE_COMMAND_UI响应函数里.
hi_xjy
2010-10-26 · TA获得超过2468个赞
知道大有可为答主
回答量:987
采纳率:0%
帮助的人:1537万
展开全部
还可用于 设置工具栏按钮是否被按下、在状态栏中显示一些信息

UPDATE_COMMAND_UI
处理菜单对应的用户界面
COMMAND
处理该菜单对应的功能

UPDATE_COMMAND_UI就是更新命令用户接口消息,专门用于处理菜单项和工具条按钮的更新。每一个菜单命令都对应于一个更新命令用户接口消息。可以为更新命令用户接口消息编写消息处理函数来处理用户接口(包括菜单和工具条按钮)的更新。如果一条命令有多个用户接口对象(比如一个菜单项和一个工具条按钮),两者都被发送给同一个处理函数。这样,对于所有等价的用户接口对象来说,可以把用户接口更新代码封装在同一地方。

如果要使菜单变灰、或者在菜单项里面打勾
用那个UPDATE_COMMAND_UI,否则用COMMAND

例子:
void CMainFrame::OnUpdateSelectBlue(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(true);//把菜单选中
}

根据某个状态开关菜单,也可以为菜单生成命令接口更新成员函数。比如,在Edit菜单中,如果当前剪贴板没有内容,Paste(粘贴)菜单应当设为无效,程序可以这么写:

void CMainFrame::OnUpdateEditPaste(CCmdUI* pCmdUI)

{

pCmdUI->Enable(!IsClipboardEmpty());

}

其中IsClipboardEmtpy()是读者自己编写的函数,用于判断剪贴板中是否有内容

参考资料: http://blog.csdn.net/chocolateconanlan/archive/2009/06/24/4293784.aspx

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式