質問
MFCの特定の条件下でメニュー項目を非表示にするにはどうすればよいですか?
グレーアウトすることに興味はありません。
解決
メニュー項目の更新ハンドラーを追加します(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);
}
他のヒント
または単一のメニュー項目を削除する場合は、CMenu :: RemoveMenu
所属していません StackOverflow