Função EnableMenuItem (winuser.h)

Habilita, desabilita ou cinza o item de menu especificado.

Sintaxe

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

Parâmetros

[in] hMenu

Tipo: HMENU

Um identificador para o menu.

[in] uIDEnableItem

Tipo: UINT

O item de menu a ser habilitado, desabilitado ou esmaecido, conforme determinado pelo parâmetro uEnable . Esse parâmetro especifica um item em uma barra de menus, menu ou submenu.

[in] uEnable

Tipo: UINT

Controla a interpretação do parâmetro uIDEnableItem e indica se o item de menu está habilitado, desabilitado ou esmaecido. Esse parâmetro deve ser uma combinação dos valores a seguir.

Valor Significado
MF_BYCOMMAND
0x00000000L
Indica que uIDEnableItem fornece o identificador do item de menu. Se nem o sinalizador MF_BYCOMMAND nem MF_BYPOSITION for especificado, o sinalizador MF_BYCOMMAND será o sinalizador padrão.
MF_BYPOSITION
0x00000400L
Indica que uIDEnableItem fornece a posição relativa baseada em zero do item de menu.
MF_DISABLED
0x00000002L
Indica que o item de menu está desabilitado, mas não esmaecido, portanto, não pode ser selecionado.
MF_ENABLED
0x00000000L
Indica que o item de menu está habilitado e restaurado de um estado esmaecido para que possa ser selecionado.
MF_GRAYED
0x00000001L
Indica que o item de menu está desabilitado e esmaecido para que não possa ser selecionado.

Retornar valor

Tipo: BOOL

O valor retornado especifica o estado anterior do item de menu (ele é MF_DISABLED, MF_ENABLED ou MF_GRAYED). Se o item de menu não existir, o valor retornado será -1.

Comentários

Um aplicativo deve usar o sinalizador MF_BYPOSITION para especificar o identificador de menu correto. Se o identificador de menu para a barra de menus for especificado, o item de menu de nível superior (um item na barra de menus) será afetado. Para definir o estado de um item em um menu suspenso ou submenu por posição, um aplicativo deve especificar um identificador para o menu suspenso ou submenu.

Quando um aplicativo especifica o sinalizador MF_BYCOMMAND , o sistema verifica todos os itens que abrem submenus no menu identificado pelo identificador de menu especificado. Portanto, a menos que itens de menu duplicados estejam presentes, especificar o identificador de menu para a barra de menus é suficiente.

As funções InsertMenu, InsertMenuItem, LoadMenuIndirect, ModifyMenu e SetMenuItemInfo também podem definir o estado (habilitado, desabilitado ou esmaecido) de um item de menu.

Quando você altera um menu de janela, a barra de menus não é atualizada imediatamente. Para forçar a atualização, chame DrawMenuBar.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-menu-l1-1-0 (introduzido no Windows 8)

Confira também

Conceitual

Drawmenubar

GetMenuItemID

Insertmenu

InsertMenuItem

LoadMenuIndirect

Menus

Modifymenu

Referência

Setmenuiteminfo

WM_SYSCOMMAND