我想动态禁用主框架的某个菜单项,怎么设都禁用不了!
以下方法都试过了,都不行。CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED); 和CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(1,MF_BYPOSITION|MF_GRAYED|MF_DISABLED);//BY_POSITION
该菜单项Popup = false;是不是这个原因啊?
我把它设成Popup = true后是可以动态禁用了,但动态启用后选择该菜单项无反应。我该怎么办啊?
以下方法都试过了,都不行。CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED); 和CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(1,MF_BYPOSITION|MF_GRAYED|MF_DISABLED);//BY_POSITION
该菜单项Popup = false;是不是这个原因啊?
我把它设成Popup = true后是可以动态禁用了,但动态启用后选择该菜单项无反应。我该怎么办啊?
{
pCmdUI->Enable(true/false);
}通过控制变量实现。
在这里面做...
void CMainFrame::OnUpdateFileNew(CCmdUI* pCmdUI)
{
pCmdUI->Enable(true/false);
}true为可用,false为禁用
void CMainFrame::OnUpdateFileNew(CCmdUI* pCmdUI)
{
pCmdUI->Enable(TRUE);
}
2.还有一种可能就是你对系统的一个变量m_bAutoMenuEnable进行了设置
this->m_bAutoMenuEnable=FALSE;这两种情况下即使没有对菜单加入消息处理函数,他们仍然不能禁止菜单项