winuser.h


GetMenuState

La función GetMenuState recupera las banderas de menú asociadas con el ítem de menú especificado. Si el ítem de menú abre un submenú, esta función también devuelve el número de ítems del submenú.

La función GetMenuState ha sido sustituida por la función GetMenuItemInfo. De todos modos, se puede seguir usando GetMenuState, si no se necesita ninguna de las características extendidas de la función GetMenuItemInfo.

Sintaxis

UINT GetMenuState(
    HMENU hMenu,  // manipulador de menú
    UINT uId,     // ítem de menú a consultar
    UINT uFlags   // banderas de menú
   );

Parámetros

hMenu: identifica el menú que contiene el ítem de menú cuyas banderas se van a recuperar.

uId: especifica el ítem de menú para el que se recuperarán las banderas, tal como lo determine el parámetro uFlags.

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

Valor Descripción
MF_BYCOMMAND Indica que el parámetro uId proporciona el identificador del ítem de menú. La bandera MF_BYCOMMAND es el valor por defecto si no se especifica ni MF_BYCOMMAND ni MF_BYPOSITION.
MF_BYPOSITION Indica que el parámetro uId proporciona la posición relativa, empezando en cero, del ítem de menú.

Valor de retorno

Si el ítem especificado no exite, el valor de retorno es 0xFFFFFFFF.

Si el ítem de menú abre un submenú, el byte de menor peso del valor de retorno contiene las banderas asociadas al ítem, y el de mayor peso contiene el número de ítems en el submenú abierto por el ítem.

En caso contrario, el valor de retorno es una máscara (OR booleano) de las banderas de menú. A continuación se muestran las banderas asociadas con el ítem de menú:

Valor Descripción
MF_CHECKED Coloca una marca de chequeo junto al ítem (sólo para menús desplegables, submenú y menús de atajo).
MF_DISABLED Inhibe el ítem.
MF_GRAYED Inhbibe y oscurece el ítem.
MF_HILITE Resalta el ítem.
MF_MENUBARBREAK Funciona igual que la bandera MF_MENUBREAK, excepto para menús desplegable, submenús y menús de atajo, donde la nueva columna se seprara de la anterior por una línea vertical.
MF_MENUBREAK Coloca el ítem en una línea diferente (para barras de menú) o en una columna distinta (para menús desplegable, submenús y menús de atajo) sin separar las columnas.
MF_SEPARATOR Crea una línea de división horizontal (sólo para menús desplegable, submenús y menús de atajo).