MFC单文档动态禁用使能菜单项

之前在MFC单文档开发中遇到需要动态禁用使能菜单项的功能,由于以前编写MFC对话框程序也是遇到过同样需要使用 

GetMenu()->GetSubMenu(0)->EnableMenuItem(0,MF_BYPOSITION|MF_DISABLED|MF_GRAYED);
GetMenu()->GetSubMenu(0)->EnableMenuItem(0,MF_BYPOSITION|MF_ENABLED);

 就能禁用使能菜单项,

但是这个在MFC单文档禁用使能菜单项无效,当时在网上随意找了一下没找到,就暂时搁置了这个功能;

 

现在整理一下解决的方法:

先把MainFrame的变量m_bAutoMenuEnable = false;设置为不自动刷新就行了(不然每次禁用完菜单项,到自动刷新又使能了)

再用

GetMenu()->GetSubMenu(0)->EnableMenuItem(0,MF_BYPOSITION|MF_DISABLED|MF_GRAYED);
GetMenu()->GetSubMenu(0)->EnableMenuItem(0,MF_BYPOSITION|MF_ENABLED);

 就能像MFC对话框一样禁用使能菜单项了;

 

论坛很多人说用ON_UPDATE_COMMAND_UI来禁用使能菜单项,估计没几个人在这里这样用, 

void CMainFrame::OnUpdateClickBtnOpenFile(CCmdUI *pCmdUI)
{
  pCmdUI->Enable(FALSE);
}

 

posted on 2014-12-26 16:34  mcode  阅读(1094)  评论(0)    收藏  举报

导航