代码1:void MyClass::CommandHandler()
{
MENUITEMINFOW mItemInfo;
CWnd* pMainWnd = AfxGetMainWnd();
CMenu *mMenu = pMainWnd->GetMenu();
CMenu *mSubMenu = mMenu->GetSubMenu(0);
mSubMenu->GetMenuItemInfo(ID_CONFIGURE_SETTOFOREGROUNDININCOMINGCALL, &mItemInfo);
if(mItemInfo.fState == MF_CHECKED)
{
mSubMenu->CheckMenuItem(ID_CONFIGURE_SETTOFOREGROUNDININCOMINGCALL, MF_UNCHECKED);
m_bSetForeground = false;
}
else if(mItemInfo.fState == MF_UNCHECKED)
{
mSubMenu->CheckMenuItem(ID_CONFIGURE_SETTOFOREGROUNDININCOMINGCALL, MF_CHECKED);
m_bSetForeground = true;
}
}
代码2:void CMyView::OnViewStatuswindow()
{
CMenu *pMenu = AfxGetMainWnd()->GetMenu();
if(pMenu)
{
UINT state = pMenu->GetMenuState(ID_VIEW_STATUSWINDOW, MF_BYCOMMAND);
if(state == 0xFFFFFFFF)
return;
if (state & MF_CHECKED)
{
pMenu->CheckMenuItem(ID_VIEW_STATUSWINDOW, MF_UNCHECKED | MF_BYCOMMAND);
}
else
{
pMenu->CheckMenuItem(ID_VIEW_STATUSWINDOW, MF_CHECKED | MF_BYCOMMAND);
}
}
}
代码3:void CMainFrame::OnToggleTestMenuItem()
{
// Get the popup menu which contains the "Test" menu item.
CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(3);
// Check the state of the "Test" menu item. Check the menu item
// if it is currently unchecked. Otherwise, uncheck the menu item
// if it is not currently checked.
UINT state = submenu->GetMenuState(ID_HELP_TEST, MF_BYCOMMAND);
ASSERT(state != 0xFFFFFFFF);
if (state & MF_CHECKED)
submenu->CheckMenuItem(ID_HELP_TEST, MF_UNCHECKED | MF_BYCOMMAND);
else
submenu->CheckMenuItem(ID_HELP_TEST, MF_CHECKED | MF_BYCOMMAND);
}
CSDN: GetMenuState参考