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); }
浙公网安备 33010602011771号