在MFC中隐藏菜单项

10

在MFC中,如何在某些条件下隐藏菜单项?我不想只是将其变灰。

2个回答

19

使用ON_UPDATE_COMMAND_UI为菜单项添加更新处理程序。

这行代码应该出现在你的消息映射中:

  ON_UPDATE_COMMAND_UI(ID_MYMENUITEM, OnUpdateMyMenuItem)

在处理程序中,使用以下代码:

void CMainFrame::OnUpdateMyMenuItem(CCmdUI *pCmdUI)
{
  if (pCmdUI->m_pMenu!=NULL)
    pCmdUI->m_pMenu->DeleteMenu(pCmdUI->m_nID, MF_BYCOMMAND);
}

1
一开始无法获取正确的CMenu对象的有效指针,但这段代码解决了问题! - GTAE86

3

如果您要删除单个菜单项,请使用CMenu:: RemoveMenu


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接