Compartir a través de


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

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 siguientes valores.

Valor Significado
MIIM_BITMAP
0x00000080
Recupera o establece el miembro hbmpItem.
MIIM_CHECKMARKS
0x00000008
Recupera o establece los hbmpChecked y miembros hbmpUnchecked.
MIIM_DATA
0x00000020
Recupera o establece el miembro dwItemData.
MIIM_FTYPE
0x00000100
Recupera o establece el miembro fType de .
MIIM_ID
0x00000002
Recupera o establece el miembro wID.
MIIM_STATE
0x00000001
Recupera o establece el miembro fState de .
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 fType y dwTypeData miembros.

MIIM_TYPE se reemplaza por MIIM_BITMAP, MIIM_FTYPEy MIIM_STRING.

fType

Tipo: UINT

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

Los valores MFT_BITMAP, MFT_SEPARATORy MFT_STRING no se pueden combinar entre sí. Establezca fMask en 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
Coloca 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
Coloca 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 que posee el menú. La ventana recibe un mensaje de WM_MEASUREITEM antes de que se muestre el menú por primera vez y un mensaje de WM_DRAWITEM cada vez que se debe actualizar la apariencia del elemento de menú. Si se especifica este valor, el dwTypeData miembro 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 de hbmpChecked 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). Esto 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 divisoria horizontal. Los miembros de dwTypeData y cch se omiten. 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 fMask en 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 fMask en MIIM_ID para usar wID.

hSubMenu

Tipo: HMENU de

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 fMask en MIIM_SUBMENU para usar hSubMenu.

hbmpChecked

Tipo: HBITMAP

Identificador del mapa de bits que se va a 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 fMask en MIIM_CHECKMARKS para usar hbmpChecked.

hbmpUnchecked

Tipo: HBITMAP

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

dwItemData

Tipo: ULONG_PTR

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

dwTypeData

Tipo: LPTSTR de

Contenido del elemento de menú. El significado de este miembro depende del valor de fType y solo se usa si la marca de MIIM_TYPE está establecida 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 cchy 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 de , este miembro debe contener un valor cuyo tipo especifica el miembro fType de .

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

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, solo se usa cch si la marca de MIIM_TYPE está establecida en el miembro fMask de y es cero de lo contrario. Además, cch se omite cuando se establece el contenido de un elemento de menú llamando a SetMenuItemInfo.

Tenga en cuenta que, antes de llamar a GetMenuItemInfo, la aplicación debe establecer cch a 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 otro tipo, GetMenuItemInfo establece el cch campo 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 de MIIM_BITMAP se establece en el miembro fMask de .

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)
Cierre el botón 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 para el submenú.
HBMMENU_POPUP_RESTORE
((HBITMAP) 9)
Botón Restaurar para el submenú.
HBMMENU_SYSTEM
((HBITMAP) 1)
Icono de Windows o el icono de la ventana especificada en dwItemData.

Observaciones

La estructura MENUITEMINFO se usa con las funciones GetMenuItemInfo, InsertMenuItemy 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
encabezado de winuser.h (incluya Windows.h)

Consulte también

conceptual de

GetMenuItemInfo

InsertMenuItem

menús de

de referencia de

SetMenuItemInfo

WM_DRAWITEM

WM_MEASUREITEM