Función GetMenuState (winuser.h)

Recupera las marcas de menú asociadas al elemento de menú especificado. Si el elemento de menú abre un submenú, esta función también devuelve el número de elementos del submenú.

Nota La función GetMenuState se ha reemplazado por GetMenuItemInfo. Sin embargo, puede usar GetMenuState si no necesita ninguna de las características extendidas de GetMenuItemInfo.
 

Sintaxis

UINT GetMenuState(
  [in] HMENU hMenu,
  [in] UINT  uId,
  [in] UINT  uFlags
);

Parámetros

[in] hMenu

Tipo: HMENU

Identificador del menú que contiene el elemento de menú cuyas marcas se van a recuperar.

[in] uId

Tipo: UINT

Elemento de menú para el que se van a recuperar las marcas de menú, según lo determinado por el parámetro uFlags .

[in] uFlags

Tipo: UINT

Indica cómo se interpreta el parámetro uId . Este parámetro puede ser uno de los valores siguientes.

Valor Significado
MF_BYCOMMAND
0x00000000L
Indica que el parámetro uId proporciona el identificador del elemento de menú. La marca MF_BYCOMMAND es la predeterminada si no se especifica ni la marca MF_BYCOMMAND ni MF_BYPOSITION .
MF_BYPOSITION
0x00000400L
Indica que el parámetro uId proporciona la posición relativa de base cero del elemento de menú.

Valor devuelto

Tipo: UINT

Si el elemento especificado no existe, el valor devuelto es -1.

Si el elemento de menú abre un submenú, el byte de orden bajo del valor devuelto contiene las marcas de menú asociadas al elemento y el byte de orden superior contiene el número de elementos del submenú abiertos por el elemento.

De lo contrario, el valor devuelto es una máscara (OR bit a bit) de las marcas de menú. A continuación se muestran las marcas de menú asociadas al elemento de menú.

Código o valor devuelto Descripción
MF_CHECKED
0x00000008L
Una marca de verificación se coloca junto al elemento (solo para menús desplegables, submenús y menús contextuales).
MF_DISABLED
0x00000002L
El elemento está deshabilitado.
MF_GRAYED
0x00000001L
El elemento está deshabilitado y atenuado.
MF_HILITE
0x00000080L
El elemento está resaltado.
MF_MENUBARBREAK
0x00000020L
Es lo mismo que la marca de MF_MENUBREAK , excepto los menús desplegables, submenús y menús contextuales, donde la nueva columna está separada de la columna antigua por una línea vertical.
MF_MENUBREAK
0x00000040L
El elemento se coloca en una nueva línea (para barras de menú) o en una nueva columna (para menús desplegables, submenús y menús contextuales) sin separar columnas.
MF_OWNERDRAW
0x00000100L
El elemento es dibujado por el propietario.
MF_POPUP
0x00000010L
El elemento de menú es un submenú.
MF_SEPARATOR
0x00000800L
Hay una línea divisoria horizontal (solo para menús desplegables, submenús y menús contextuales).

Comentarios

Es posible probar un elemento para un valor de marca de MF_ENABLED, MF_STRING, MF_UNCHECKED o MF_UNHILITE. Sin embargo, dado que estos valores equivalen a cero, debe usar una expresión para probarlos.

Marca Expresión que se va a probar para la marca
MF_ENABLED ! (Flag&(MF_DISABLED | MF_GRAYED))
MF_STRING ! (Flag&(MF_BITMAP | MF_OWNERDRAW))
MF_UNCHECKED ! (Flag&MF_CHECKED)
MF_UNHILITE ! (Flag&HILITE)
 

Ejemplos

Para obtener un ejemplo, vea Simulación de casillas en un menú.

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 (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-menu-l1-1-2 (introducido en Windows 10, versión 10.0.10240)

Consulte también

Conceptual

GetMenu

GetMenuItemCount

GetMenuItemID

GetMenuItemInfo

Menús

Referencia