永发信息网

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

答案:2  悬赏:20  手机版
解决时间 2021-04-01 12:12
  • 提问者网友:戎马万世
  • 2021-03-31 16:18
消息响应COMMAND 和 UPDATE_COMMAND_UI的区别,使用范围的区别,使用对象的区别,等等方面的。
最佳答案
  • 五星知识达人网友:持酒劝斜阳
  • 2021-03-31 16:33
简单的说ON_COMMAND是点了按钮或菜单项后的响应消息,
ON_UPDATE_COMMAND_UI是用来表示对应的按钮和菜单项的状态的响应消息.

比如WINDOWS自带的记事本程序,它的"格式"菜单下有个"自动换行",那么在编写记事本这个程序时,对文本进行自动换行或不自动换行的操作就要放在ON_COMMAND消息响应函数里,而"自动换行"菜单项左边是否打勾的操作则放在ON_UPDATE_COMMAND_UI响应函数里.
全部回答
  • 1楼网友:零点过十分
  • 2021-03-31 16:56
还可用于 设置工具栏按钮是否被按下、在状态栏中显示一些信息
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

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯