MFC 使菜单项变灰

来源:互联网 发布:上海房地产交易数据 编辑:程序博客网 时间:2024/04/29 08:15
来自:CrazyCoder007 >C/CPP
配色:字号:
MFC 使菜单项变灰
2011-04-18 | 阅:453  转:2
  |  分享 
  • 推荐给朋友
  • 举报
  

一、没有UpdateCmdUI句柄时

MFC中缺省的习惯是当没有UpdateCmdUI句柄时程序是使能(Enable)菜单,菜单自动变成使能,只要关掉缺省值就可以了,把下面的代码加入你的程序
CMainFrm::CMainFrm
{
// Other stuff
this->m_bAutoMenuEnable = false;
}  

然后在消息响应函数中添加如下代码:

CMenu* m_menu = GetMenu();
CMenu* submenu = m_menu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_GRAYED);

一、有UpdateCmdUI句柄时

在框架中添加菜单ID的ON_UPDATE_COMMAND_UI消息,在相应函数参数中会有“CCmdUI* pCmdUI”这个参数,添加如下代码:

pCmdUI->Enable(false);

就可是这个菜单变灰显

 

GetDlgItem(ID_PASTE)->EnableWindow(FALSE);  

CMenu   menu;  
  if(menu.LoadMenu(IDR_XXX_MENU))  
  {  
  CPoint   m_point;  
  ::GetCursorPos(&m_point);  
  CMenu&   pPopup=*menu.GetSubMenu(0);  
  menu.EnableMenuItem(ID_XXX_MENU,   MF_BYCOMMAND   |   MF_DISABLED   |   MF_GRAYED); pPopup.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,  
  point.x,point.y,this);  
  }   
   

 

 
上一篇:对话框程序最大化 控件以及字体大小自适应
下一篇:VC中Combo Box控件使用大全
献花(0)
+1
分享到:分享到QQ空间分享到新浪微博分享到腾讯微博分享到搜狐微博
  • 推荐给朋友
  • 举报
(本文系CrazyCoder0...首藏  源文网址)
原创粉丝点击