共用方式為


CMenu::GetMenuState

傳回指定之功能表項目的狀態或項目數目的快顯功能表的。

UINT GetMenuState(
   UINT nID,
   UINT nFlags 
) const;

參數

  • nID
    指定功能表項目 ID,由 nFlags。

  • nFlags
    指定 nID的性質。 它可以是下列其中一個值:

    • MF_BYCOMMAND 指定參數指定現有的功能表項目的命令 ID。 這是預設值。

    • MF_BYPOSITION 指定參數重新命名現有的功能表項目的位置。 第一個項目在位置 0。

傳回值

值 0xFFFFFFFF,如果指定的項目不存在。 如果 nId 識別的快顯功能表,高序位 (High Order) 位元組在快顯功能表包含的項目數目,而低序位區段包含功能表旗標與快顯功能表。 否則傳回值是遮罩 (布林值) 或從下列清單中的值 (這個遮罩描述 nId 識別) 功能表項目的狀態:

  • MF_CHECKED 為具有 MF_UNCHECKED 的切換了項目旁邊放置預設核取記號。 當應用程式提供核取記號點陣圖 (請參閱 SetMenuItemBitmaps 成員函式),則」Bitmap 「的核取記號顯示。

  • MF_DISABLED 停用功能表項目,讓它不能選取,但不會呈現暗灰色。

  • MF_ENABLED 啟用功能表項目,讓它可以選取和還原它從其暗灰色的 (Dimmed) 狀態。 請注意這個常數的值是 0;,當使用這個值時,應用程式不應該測試對象 0 針對失敗。

  • MF_GRAYED 停用功能表項目,讓它無法選取它並暗灰色。

  • MF_MENUBARBREAK 在新行上放置項目會以靜態功能表或新資料行在快顯功能表。 新的快顯功能表資料行從舊的資料行才會分隔垂直分隔線。

  • MF_MENUBREAK 在新行上放置項目會以靜態功能表或新資料行在快顯功能表。 分隔行。不會將資料行之間的間距。

  • MF_SEPARATOR 繪製水平分隔線。 只能用於快顯功能表。 這一行不能為,停用或反白顯示。 其他參數會被忽略。

  • MF_UNCHECKED 為具有 MF_CHECKED 的切換了項目旁邊的核取記號。 當應用程式提供核取記號點陣圖 (請參閱 SetMenuItemBitmaps 成員函式), 「核取記號」點陣圖會顯示。 請注意這個常數的值是 0;,當使用這個值時,應用程式不應該測試對象 0 針對失敗。

範例

// CMainFrame::OnToggleTestMenuState() is a menu command handler for 
// "Toggle State" menu item (whose resource id is ID_MENU_TOGGLESTATE). 
// It toggles the checked or unchecked state of the "Toggle State" menu item.
// CMainFrame is a CFrameWnd-derived class.
void CMainFrame::OnToggleTestMenuState() 
{
   // Get the popup menu which contains the "Toggle State" menu item.
   CMenu* mmenu = GetMenu();
   CMenu* submenu = mmenu->GetSubMenu(4);

   // Check the state of the "Toggle State" 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_MENU_TOGGLESTATE, MF_BYCOMMAND);
   ASSERT(state != 0xFFFFFFFF);

   if (state & MF_CHECKED)
      submenu->CheckMenuItem(ID_MENU_TOGGLESTATE, MF_UNCHECKED | MF_BYCOMMAND);
   else
      submenu->CheckMenuItem(ID_MENU_TOGGLESTATE, MF_CHECKED | MF_BYCOMMAND);
}

需求

Header: afxwin.h

請參閱

參考

CMenu 類別

階層架構圖

GetMenuState

CMenu::CheckMenuItem

CMenu::EnableMenuItem