Estructura MENUITEMINFOA (winuser.h)

Contiene información sobre un elemento de menú.

Sintaxis

typedef struct tagMENUITEMINFOA {
  UINT      cbSize;
  UINT      fMask;
  UINT      fType;
  UINT      fState;
  UINT      wID;
  HMENU     hSubMenu;
  HBITMAP   hbmpChecked;
  HBITMAP   hbmpUnchecked;
  ULONG_PTR dwItemData;
  LPSTR     dwTypeData;
  UINT      cch;
  HBITMAP   hbmpItem;
} MENUITEMINFOA, *LPMENUITEMINFOA;

Miembros

cbSize

Tipo: UINT

El tamaño de la estructura en bytes. El autor de la llamada debe establecer este miembro en sizeof(MENUITEMINFO).

fMask

Tipo: UINT

Indica los miembros que se van a recuperar o establecer. Este miembro puede ser uno o varios de los valores siguientes.

Valor Significado
MIIM_BITMAP
0x00000080
Recupera o establece el miembro hbmpItem .
MIIM_CHECKMARKS
0x00000008
Recupera o establece los miembros hbmpChecked y hbmpUnchecked .
MIIM_DATA
0x00000020
Recupera o establece el miembro dwItemData .
MIIM_FTYPE
0x00000100
Recupera o establece el miembro fType .
MIIM_ID
0x00000002
Recupera o establece el miembro wID .
MIIM_STATE
0x00000001
Recupera o establece el miembro fState .
MIIM_STRING
0x00000040
Recupera o establece el miembro dwTypeData .
MIIM_SUBMENU
0x00000004
Recupera o establece el miembro hSubMenu .
MIIM_TYPE
0x00000010
Recupera o establece los miembros fType y dwTypeData .

MIIM_TYPE se reemplaza por MIIM_BITMAP, MIIM_FTYPE y MIIM_STRING.

fType

Tipo: UINT

Tipo de elemento de menú. Este miembro puede ser uno o varios de los valores siguientes.

Los valores MFT_BITMAP, MFT_SEPARATOR y MFT_STRING no se pueden combinar entre sí. Establezca fMasken MIIM_TYPE para usar fType.

fType solo se usa si fMask tiene un valor de MIIM_FTYPE.

Valor Significado
MFT_BITMAP
0x00000004L
Muestra el elemento de menú mediante un mapa de bits. La palabra de orden bajo del miembro dwTypeData es el identificador de mapa de bits y se omite el miembro cch .

MFT_BITMAP se reemplaza por MIIM_BITMAP y hbmpItem.

MFT_MENUBARBREAK
0x00000020L
Places el elemento de menú en una nueva línea (para una barra de menús) o en una nueva columna (para un menú desplegable, submenú o menú contextual). Para un menú desplegable, submenú o menú contextual, una línea vertical separa la nueva columna de la antigua.
MFT_MENUBREAK
0x00000040L
Places el elemento de menú en una nueva línea (para una barra de menús) o en una nueva columna (para un menú desplegable, submenú o menú contextual). Para un menú desplegable, submenú o menú contextual, las columnas no están separadas por una línea vertical.
MFT_OWNERDRAW
0x00000100L
Asigna la responsabilidad de dibujar el elemento de menú en la ventana propietaria del menú. La ventana recibe un mensaje de WM_MEASUREITEM antes de que se muestre el menú por primera vez y un mensaje WM_DRAWITEM cada vez que se deba actualizar la apariencia del elemento de menú. Si se especifica este valor, el miembro dwTypeData contiene un valor definido por la aplicación.
MFT_RADIOCHECK
0x00000200L
Muestra los elementos de menú seleccionados mediante una marca de botón de radio en lugar de una marca de verificación si el miembro hbmpChecked es NULL.
MFT_RIGHTJUSTIFY
0x00004000L
Justifica con el botón derecho el elemento de menú y los elementos posteriores. Este valor solo es válido si el elemento de menú está en una barra de menús.
MFT_RIGHTORDER
0x00002000L
Especifica que los menús en cascada de derecha a izquierda (el valor predeterminado es de izquierda a derecha). Se usa para admitir idiomas de derecha a izquierda, como árabe y hebreo.
MFT_SEPARATOR
0x00000800L
Especifica que el elemento de menú es un separador. Un separador de elementos de menú aparece como una línea divisora horizontal. Se omiten los miembros dwTypeData y cch . Este valor solo es válido en un menú desplegable, submenú o menú contextual.
MFT_STRING
0x00000000L
Muestra el elemento de menú mediante una cadena de texto. El miembro dwTypeData es el puntero a una cadena terminada en null y el miembro cch es la longitud de la cadena.

MFT_STRING se reemplaza por MIIM_STRING.

fState

Tipo: UINT

Estado del elemento de menú. Este miembro puede ser uno o varios de estos valores. Establezca fMasken MIIM_STATE para usar fState.

Valor Significado
MFS_CHECKED
0x00000008L
Comprueba el elemento de menú. Para obtener más información sobre los elementos de menú seleccionados, vea el miembro hbmpChecked .
MFS_DEFAULT
0x00001000L
Especifica que el elemento de menú es el valor predeterminado. Un menú solo puede contener un elemento de menú predeterminado, que se muestra en negrita.
MFS_DISABLED
0x00000003L
Deshabilita el elemento de menú y lo grisiza para que no se pueda seleccionar. Esto equivale a MFS_GRAYED.
MFS_ENABLED
0x00000000L
Habilita el elemento de menú para que se pueda seleccionar. Este es el estado predeterminado.
MFS_GRAYED
0x00000003L
Deshabilita el elemento de menú y lo grisiza para que no se pueda seleccionar. Esto equivale a MFS_DISABLED.
MFS_HILITE
0x00000080L
Resalta el elemento de menú.
MFS_UNCHECKED
0x00000000L
Desactiva el elemento de menú. Para obtener más información sobre los elementos de menú no cifrados, vea el miembro hbmpChecked .
MFS_UNHILITE
0x00000000L
Quita el resaltado del elemento de menú. Este es el estado predeterminado.

wID

Tipo: UINT

Valor definido por la aplicación que identifica el elemento de menú. Establezca fMasken MIIM_ID para usar wID.

hSubMenu

Tipo: HMENU

Identificador del menú desplegable o submenú asociado al elemento de menú. Si el elemento de menú no es un elemento que abre un menú desplegable o submenú, este miembro es NULL. Establezca fMasken MIIM_SUBMENU para usar hSubMenu.

hbmpChecked

Tipo: HBITMAP

Identificador del mapa de bits que se mostrará junto al elemento si está seleccionado. Si este miembro es NULL, se usa un mapa de bits predeterminado. Si se especifica el valor de tipo MFT_RADIOCHECK , el mapa de bits predeterminado es una viñeta. De lo contrario, es una marca de verificación. Establezca fMasken MIIM_CHECKMARKS para usar hbmpChecked.

hbmpUnchecked

Tipo: HBITMAP

Identificador del mapa de bits que se mostrará junto al elemento si no está seleccionado. Si este miembro es NULL, no se usa ningún mapa de bits. Establezca fMasken MIIM_CHECKMARKS para usar hbmpUnchecked.

dwItemData

Tipo: ULONG_PTR

Valor definido por la aplicación asociado al elemento de menú. Establezca fMasken MIIM_DATA para usar dwItemData.

dwTypeData

Tipo: LPTSTR

Contenido del elemento de menú. El significado de este miembro depende del valor de fType y solo se usa si la marca MIIM_TYPE se establece en el miembro fMask .

Para recuperar un elemento de menú de tipo MFT_STRING, primero busque el tamaño de la cadena estableciendo el miembro dwTypeData de MENUITEMINFO en NULL y, a continuación, llamando a GetMenuItemInfo. El valor de cch+1 es el tamaño necesario. A continuación, asigne un búfer de este tamaño, coloque el puntero al búfer en dwTypeData, incremente cch y llame a GetMenuItemInfo una vez más para rellenar el búfer con la cadena. Si el elemento de menú recuperado es de algún otro tipo, GetMenuItemInfo establece el miembro dwTypeData en un valor cuyo tipo especifica el miembro fType .

Cuando se usa con la función SetMenuItemInfo , este miembro debe contener un valor cuyo tipo especifica el miembro fType .

dwTypeData solo se usa si la marca MIIM_STRING está establecida en el miembro fMask

cch

Tipo: UINT

Longitud del texto del elemento de menú, en caracteres, cuando se recibe información sobre un elemento de menú del tipo MFT_STRING . Sin embargo, cch solo se usa si la marca MIIM_TYPE se establece en el miembro fMask y es cero de lo contrario. Además, cch se omite cuando el contenido de un elemento de menú se establece mediante una llamada a SetMenuItemInfo.

Tenga en cuenta que, antes de llamar a GetMenuItemInfo, la aplicación debe establecer cch en la longitud del búfer al que apunta el miembro dwTypeData . Si el elemento de menú recuperado es de tipo MFT_STRING (como se indica en el miembro fType ), GetMenuItemInfo cambia cch a la longitud del texto del elemento de menú. Si el elemento de menú recuperado es de algún otro tipo, GetMenuItemInfo establece el campo cch en cero.

El miembro cch se usa cuando la marca MIIM_STRING se establece en el miembro fMask .

hbmpItem

Tipo: HBITMAP

Identificador del mapa de bits que se va a mostrar o puede ser uno de los valores de la tabla siguiente. Se usa cuando la marca MIIM_BITMAP se establece en el miembro fMask .

Valor Significado
HBMMENU_CALLBACK
((HBITMAP) -1)
Mapa de bits dibujado por la ventana que posee el menú. La aplicación debe procesar los mensajes WM_MEASUREITEM y WM_DRAWITEM .
HBMMENU_MBAR_CLOSE
((HBITMAP) 5)
Botón Cerrar de la barra de menús.
HBMMENU_MBAR_CLOSE_D
((HBITMAP) 6)
Botón Cerrar deshabilitado para la barra de menús.
HBMMENU_MBAR_MINIMIZE
((HBITMAP) 3)
Minimice el botón de la barra de menús.
HBMMENU_MBAR_MINIMIZE_D
((HBITMAP) 7)
Deshabilitado el botón minimizar para la barra de menús.
HBMMENU_MBAR_RESTORE
((HBITMAP) 2)
Botón Restaurar de la barra de menús.
HBMMENU_POPUP_CLOSE
((HBITMAP) 8)
Cierre el botón del submenú.
HBMMENU_POPUP_MAXIMIZE
((HBITMAP) 10)
Botón Maximizar para el submenú.
HBMMENU_POPUP_MINIMIZE
((HBITMAP) 11)
Minimice el botón del submenú.
HBMMENU_POPUP_RESTORE
((HBITMAP) 9)
Botón Restaurar del submenú.
HBMMENU_SYSTEM
((HBITMAP) 1)
Icono de Windows o icono de la ventana especificada en dwItemData.

Comentarios

La estructura MENUITEMINFO se usa con las funciones GetMenuItemInfo, InsertMenuItem y SetMenuItemInfo .

El menú puede mostrar elementos mediante texto, mapas de bits o ambos.

Nota

El encabezado winuser.h define MENUITEMINFO como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

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]
Encabezado winuser.h (incluya Windows.h)

Consulte también

Conceptual

GetMenuItemInfo

InsertMenuItem

Menús

Referencia

SetMenuItemInfo

WM_DRAWITEM

WM_MEASUREITEM