请问菜单变灰了,怎样用代码变为可用
编号:QA002034
建立日期: 1999年11月15日 最后修改日期:1999年11月15日
所属类别:
linjin:
操作系统: win98
编程工具: VC6.0
问题: 请问菜单变灰了,怎样用代码变为可用?
回答:
在MFC中,一般当显示菜单时,MFC会发送消息给框架窗口。所以你可以为某个菜单项编写ON_UPDATE_COMMAND_UI消息处理函数,在其中设置是否可以使用该菜单。
void CMyView::OnUpdateMenuItem(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bEnabled);
}
如果不编写ON_UPDATE_COMMAND_UI消息处理函数,可以使用CMenu::EnableMenuItem来设置菜单可用或禁用的,但是在MFC中,要使该函数起作用,需要将CFrameWnd:: m_bAutomenuEnable设置为FALSE,如果该数据成员为TRUE(缺省值),工作框将自动地禁止没有ON_UPDATE_COMMAND_UI或者ON_COMMAND的菜单项。
//Disable MFC from automatically disabling menu items.
m_bAuoMenuEnable=FALSE;
//Now enable the menu item.
CMenu* pMenu=GetMenu ();
ASSERT_VALID (pMenu);
pMenu->EnableMenuItem (ID_MENU_ITEM,MF_BYCOMMAND | MF_ENABLED);
此问题由李海回答。
| |
|
|
| |
|
|