MFC中关于Menu的灰化

MFC中关于Menu的灰化
如何实现这一功能:
在程序打开时,某一菜单命令是灰化而不可用的,比如说ID_FILE_SAVE_AS不可用,
当程序执行某个其他命令之后,这个菜单命令又会不再灰化,变回可用的。
请说明一下应该用什么函数,放到哪个类当中实现?
1.使用类向导响应菜单项的UPDATE_COMMAND_UI 消息
在资源视图卜物->Menu下找到你想要操作的菜单,型敬液右键ClassWizard,然后左侧选中菜单ID,在右侧双击ON_UPDATE_COMMAND_UI
2.可手动为菜单项添加ON_UPDATE_COMMAND_UI消息稿亩
//.h
afx_msg void OnUpdateDisplayAllHole(CCmdUI* pCmdUI);
//.cpp
BEGIN_MESSAGE_MAP(CXXXView, CView)
...
...
ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_AS,OnUpdateFileSaveAs)
END_MESSAGE_MAP()

//函数实现
void CXXXView::OnUpdateFileSaveAs(CCmdUI* pCmdUI)
{
if(判断条件)
pCmdUI->Enable();
else
pCmdUI->Enable(FALSE);
}
m_pMenu->带做EnableMenuItem(m_nIndex, MF_BYPOSITION |
(bOn ? MF_ENABLED : (MF_DISABLED | MF_GRAYED)));

参考void CCmdUI::Enable(BOOL bOn)在碰行亩CMDTARG.CPP中。笑森
← 上一篇: 下一篇: →