Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2631388
  • 博文数量: 416
  • 博客积分: 10220
  • 博客等级: 上将
  • 技术积分: 4193
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-15 09:47
文章分类

全部博文(416)

文章存档

2022年(1)

2021年(1)

2020年(1)

2019年(5)

2018年(7)

2017年(6)

2016年(7)

2015年(11)

2014年(1)

2012年(5)

2011年(7)

2010年(35)

2009年(64)

2008年(48)

2007年(177)

2006年(40)

我的朋友

分类:

2007-02-28 16:06:03

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);//把菜单选中  
  }   
   
阅读(2757) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~