如果菜单是系统自动生成的,可以使用EnableMenuItem函数。例如:
1 | CMenu* pMenu=GetMenu ();//获取当前主框架下的菜单栏指针 |
2 | ASSERT_VALID (pMenu);//检查这个指针是否有效 |
3 | pMenu->EnableMenuItem(ID_TOOL_DISPLAYBACKLINE,MF_BYCOMMAND | MF_GRAYED);//使按扭不可用 |
4 | pMenu->EnableMenuItem(ID_TOOL_CANCELBACKLINE,MF_BYCOMMAND | MF_ENABLED);//使按扭可用 |
注意:只有在CMainFrame的构造函数中将变量m_bAutoMenuEnable=false时,EnableMenuItem函数才会起作用
m_bAutoMenuEnable=false时MFC就不会使用他的命令更新机制去判断哪个菜单项能使用哪个菜单项不能使用,此时这些操作都要由我们自己去完成。
如果m_bAutoMenuEnable为TRUE(缺省值),工作框将自动地禁止没有ON_UPDATE_COMMAND_UI或者ON_COMMAND的菜单项。