EnableMenuItem 函式 (winuser.h)

啟用、停用或灰色指定的功能表項。

語法

BOOL EnableMenuItem(
  [in] HMENU hMenu,
  [in] UINT  uIDEnableItem,
  [in] UINT  uEnable
);

參數

[in] hMenu

類型: HMENU

功能表的句柄。

[in] uIDEnableItem

類型: UINT

要啟用、停用或呈現灰色的功能表項,由 uEnable 參數決定。 此參數會指定功能表欄、功能表或子選單中的專案。

[in] uEnable

類型: UINT

控制 uIDEnableItem 參數的解譯,並指出功能表項已啟用、停用或呈現灰色。 此參數必須是下列值的組合。

意義
MF_BYCOMMAND
0x00000000L
表示 uIDEnableItem 會提供功能表項的識別碼。 如果未指定 MF_BYCOMMANDMF_BYPOSITION 旗標, 則MF_BYCOMMAND 旗標是預設旗標。
MF_BYPOSITION
0x00000400L
表示 uIDEnableItem 會提供功能表項以零起始的相對位置。
MF_DISABLED
0x00000002L
表示功能表項已停用,但未呈現灰色,因此無法選取。
MF_ENABLED
0x00000000L
指出功能表項已啟用並從灰色狀態還原,以便加以選取。
MF_GRAYED
0x00000001L
表示功能表項已停用且呈現灰色,因此無法選取。

傳回值

類型: BOOL

傳回值會指定功能表項的上一個狀態, (MF_DISABLED、MF_ENABLEDMF_GRAYED) 。 如果功能表項不存在,傳回值為 -1。

備註

應用程式必須使用 MF_BYPOSITION 旗標來指定正確的功能表句柄。 如果指定功能表欄的功能表句柄,最上層功能選單項會 (選單欄中的專案) 受到影響。 若要依位置在下拉功能表或子功能表中設定項目的狀態,應用程式必須指定下拉功能表或子功能表的句柄。

當應用程式指定 MF_BYCOMMAND 旗標時,系統會檢查指定功能表句柄所識別功能表中開啟子功能表的所有專案。 因此,除非有重複的功能表項存在,否則指定功能表欄的功能表句柄就已足夠。

InsertMenuInsertMenuItemLoadMenuIndirect、ModifyMenuSetMenuItemInfo 函式也可以設定功能表項的啟用、停用或灰色) (狀態。

當您變更視窗功能表時,功能表列不會立即更新。 若要強制更新,請呼叫 DrawMenuBar

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winuser.h (包含 Windows.h)
程式庫 User32.lib
Dll User32.dll
API 集合 ext-ms-win-ntuser-menu-l1-1-0 (在 Windows 8) 中引進

另請參閱

概念

DrawMenuBar

GetMenuItemID

InsertMenu

InsertMenuItem

LoadMenuIndirect

功能表

ModifyMenu

參考

SetMenuItemInfo

WM_SYSCOMMAND