Compartir a través de


Función EnableMenuItem (winuser.h)

Habilita, deshabilita o gris el elemento de menú especificado.

Sintaxis

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

Parámetros

[in] hMenu

Tipo: HMENU

Identificador del menú.

[in] uIDEnableItem

Tipo: UINT

Elemento de menú que se va a habilitar, deshabilitar o atenuar, según lo determinado por el parámetro uEnable . Este parámetro especifica un elemento en una barra de menús, un menú o un submenú.

[in] uEnable

Tipo: UINT

Controla la interpretación del parámetro uIDEnableItem e indica si el elemento de menú está habilitado, deshabilitado o atenuado. Este parámetro debe ser una combinación de los valores siguientes.

Valor Significado
MF_BYCOMMAND
0x00000000L
Indica que uIDEnableItem proporciona el identificador del elemento de menú. Si no se especifica la marca MF_BYCOMMAND ni MF_BYPOSITION , la marca MF_BYCOMMAND es la marca predeterminada.
MF_BYPOSITION
0x00000400L
Indica que uIDEnableItem proporciona la posición relativa de base cero del elemento de menú.
MF_DISABLED
0x00000002L
Indica que el elemento de menú está deshabilitado, pero no atenuado, por lo que no se puede seleccionar.
MF_ENABLED
0x00000000L
Indica que el elemento de menú está habilitado y restaurado a partir de un estado atenuado para que se pueda seleccionar.
MF_GRAYED
0x00000001L
Indica que el elemento de menú está deshabilitado y atenuado para que no se pueda seleccionar.

Valor devuelto

Tipo: BOOL

El valor devuelto especifica el estado anterior del elemento de menú (ya sea MF_DISABLED, MF_ENABLED o MF_GRAYED). Si el elemento de menú no existe, el valor devuelto es -1.

Comentarios

Una aplicación debe usar la marca MF_BYPOSITION para especificar el identificador de menú correcto. Si se especifica el identificador de menú en la barra de menús, se verá afectado el elemento de menú de nivel superior (un elemento de la barra de menús). Para establecer el estado de un elemento en un menú desplegable o submenú por posición, una aplicación debe especificar un identificador para el menú desplegable o submenú.

Cuando una aplicación especifica la marca MF_BYCOMMAND , el sistema comprueba todos los elementos que abren submenús en el menú identificado por el identificador de menú especificado. Por lo tanto, a menos que haya elementos de menú duplicados presentes, es suficiente especificar el identificador de menú para la barra de menús.

Las funciones InsertMenu, InsertMenuItem, LoadMenuIndirect, ModifyMenu y SetMenuItemInfo también pueden establecer el estado (habilitado, deshabilitado o atenuado) de un elemento de menú.

Al cambiar un menú de ventana, la barra de menús no se actualiza inmediatamente. Para forzar la actualización, llame a DrawMenuBar.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-menu-l1-1-0 (introducido en Windows 8)

Consulte también

Conceptual

DrawMenuBar

GetMenuItemID

InsertMenu

InsertMenuItem

LoadMenuIndirect

Menús

ModifyMenu

Referencia

SetMenuItemInfo

WM_SYSCOMMAND