消息响应COMMAND 和 UPDATE_COMMAND_UI的区别,使用范围的区别,使用对象的区别,等等方面的。
2个回答
展开全部
还可用于 设置工具栏按钮是否被按下、在状态栏中显示一些信息
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()是读者自己编写的函数,用于判断剪贴板中是否有内容
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询