CMenu::EnableMenuItem
啟用或停用,暗灰色的功能表項目。
UINT EnableMenuItem(
UINT nIDEnableItem,
UINT nEnable
);
參數
nIDEnableItem
指定由決定要啟用的,則功能表項目 nEnable。 這個參數可以指定快顯功能表項目以及標準的功能表項目。nEnable
指定要執行的動作。 它可以是、或 MF_DISABLEDMF_ENABLEDMF_GRAYED的組合,以 MF_BYCOMMAND 或 MF_BYPOSITION。 您可以使用或運算子,這些值可以使用位元的 OR 運算組合。 這些值的意義如下:MF_BYCOMMAND 指定參數指定現有的功能表項目的命令 ID。 這是預設值。
MF_BYPOSITION 指定參數重新命名現有的功能表項目的位置。 第一個項目在位置 0。
MF_DISABLED 停用功能表項目,讓它不能選取,但不會呈現暗灰色。
MF_ENABLED 啟用功能表項目,讓它可以選取和還原它從其暗灰色的 (Dimmed) 狀態。
MF_GRAYED 停用功能表項目,讓它無法選取它並暗灰色。
傳回值
前一個狀態 (MF_DISABLED、 MF_ENABLED或 MF_GRAYED) 或– 1,如果是無效的。
備註
CreateMenu、 InsertMenu、 ModifyMenu和 LoadMenuIndirect 成員函式也可以設定狀態 (啟用、停用,或是暗灰色) 功能表項目。
使用 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