您的位置:首页 > 产品设计 > UI/UE

COMMAND与UPDATE_COMMAND_UI的区别——MFC

2010-09-09 23:27 316 查看
UPDATE_COMMAND_UI

处理菜单对应的用户界面

COMMAND

处理该菜单对应的功能

传统SDK程序;要改变选单命令项状态,可以呼叫EnableMenuItem或是

CheckMenuItem,但这使得程序杂乱无章,因为你没有;个固定的位置和固定的原则处理命令项状态。MFC提供;种直觉并且仍旧依赖讯息观念的方式,解决这个问题,这就是UPDATE_COMMAND_UI讯息。其设计理念是,每当选单被拉;并尚未显示之前,其命令项(以及对应之工具栏按钮)都会收到UPDATE_COMMAND_UI讯息,这个讯息和WM_COMMAND有㆒样的绕行路线,我们(程序员)只要在适当的类别;放置其处理函式,并在函式;做某些判断,便可决定如何显示命令项。

这种方法的最大好处是,不但把问题的解决方式统化,更因为
Framework传给UPDATE_COMMAND_UI处理程序的参数是个「指向CCmdUI对象的指针」,而CCmdUI对象就代表着对应的选单命令项,因此你只需呼叫
CCmdUI 所准备的,专门用来处理命令项外观的函式(如Enable或SetCheck)即可。我们的工作量大为减轻。


(选摘自《深入浅出MFC》第9章)

UPDATE_COMMAND_UI
处理菜单对应的用户界面

COMMAND

处理该菜单对应的功能

说得很好:)

如果要使菜单变灰、或者在菜单项里面打勾

用那个UPDATE_COMMAND_UI,否则用command

例子:
void
CMainFrame::OnUpdateSelectBlue(CCmdUI* pCmdUI)
{
// TODO:
Add your command update UI handler code here

pCmdUI->SetCheck(true);//把菜单选中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: