共用方式為


CMenu::EnableMenuItem

啟用或停用,暗灰色的功能表項目。

UINT EnableMenuItem(
   UINT nIDEnableItem,
   UINT nEnable 
);

參數

  • nIDEnableItem
    指定由決定要啟用的,則功能表項目 nEnable。 這個參數可以指定快顯功能表項目以及標準的功能表項目。

  • nEnable
    指定要執行的動作。 它可以是、或 MF_DISABLEDMF_ENABLEDMF_GRAYED的組合,以 MF_BYCOMMANDMF_BYPOSITION。 您可以使用或運算子,這些值可以使用位元的 OR 運算組合。 這些值的意義如下:

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

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

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

    • MF_ENABLED 啟用功能表項目,讓它可以選取和還原它從其暗灰色的 (Dimmed) 狀態。

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

傳回值

前一個狀態 (MF_DISABLEDMF_ENABLEDMF_GRAYED) 或– 1,如果是無效的。

備註

CreateMenuInsertMenuModifyMenuLoadMenuIndirect 成員函式也可以設定狀態 (啟用、停用,或是暗灰色) 功能表項目。

使用 MF_BYPOSITION 值必須是應用程式使用正確的 CMenu。 如果使用功能表列上的 CMenu ,最上層的功能表項目 (在功能表列上的項目) 都會受到影響。 若要依位置設定項目或巢狀快顯功能表的狀態在出現的,應用程式必須指定快顯功能表的 CMenu

當應用程式指定 MF_BYCOMMAND 旗標時, 視窗檢查附屬至 CMenu所有的快顯功能表項目;因此,除非,複製功能表項目存在,則使用功能表列上的 CMenu 就已足夠。

範例

// The code fragment below shows how to disable (and gray out) the 
// File\New menu item.
// NOTE: m_bAutoMenuEnable is set to FALSE in the constructor of 
// CMainFrame so no ON_UPDATE_COMMAND_UI or ON_COMMAND handlers are 
// needed, and CMenu::EnableMenuItem() will work as expected.

CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);

需求

Header: afxwin.h

請參閱

參考

CMenu 類別

階層架構圖

CMenu::GetMenuState

EnableMenuItem