Estructura MENUITEMINFO
Definición
typedef struct tagMENUITEMINFO { UINT cbSize; UINT fMask; UINT fType; UINT fState; UINT wID; HMENU hSubMenu; HBITMAP hbmpChecked; HBITMAP hbmpUnchecked; DWORD dwItemData; LPTSTR dwTypeData; UINT cch; #if (_WIN32_WINNT >= 0x0500) HBITMAP hbmpItem; #endif } MENUITEMINFO, FAR *LPMENUITEMINFO;
La estructura MENUITEMINFO contiene información sobre un ítem de menú.
Descripción
cbSize: tamaño de la estructura, en bytes.
fMask: miembros a recuperar o asignar. Este miembro puede ser uno o más de estos valores:
Valor | Significado |
---|---|
MIIM_CHECKMARKS | Recupera o asigna los miembros hbmpChecked y hbmpUnchecked. |
MIIM_DATA | Recupera o asigna el miembro dwItemData. |
MIIM_ID | Recupera o asigna el miembro wID. |
MIIM_STATE | Recupera o asigna el miembro fState. |
MIIM_SUBMENU | Recupera o asigna el miembro hSubMenu. |
MIIM_TYPE | Recupera o asigna los miembros fType y dwTypeData. |
MIIM_BITMAP | Windows 98/Me, Windows 2000/XP: recupera o asigna el mimebro hbmpItem. |
MIIM_FTYPE | Windows 98/Me, Windows 2000/XP: recupera o asigna el miembro fType. |
MIIM_STRING | Windows 98/Me, Windows 2000/XP: recupera o asigna el miembro dwTypeData. |
fType: tipo de ítem de menú. Este miembro puede ser uno o más de los siguientes valores:
Valor | Significado |
---|---|
MFT_BITMAP | Muestra el ítem de menú usando un mapa de bits. La palabra de menor peso del miembro
dwTypeData es el manipulador de mapa de bits, y el miembro cch se ignora. Windows 98/Me, Windows 2000/XP: MFT_BITMAP se ha reemplazado por MIIM_BITMAP y hbmpItem. |
MFT_MENUBARBREAK | Coloca el ítem de menú en una línea nueva (para una barra de menú) o en una columna nueva (para un menú desplegable, un submenú o un menú de atajo). Para este último caso, una línea vertical separa la nueva columna de la antigua. |
MFT_MENUBREAK | Coloca el ítem de menú en una línea nueva (para una barra de menú) o en una columna nueva (para un menú desplegable, un submenú o un menú de atajo). Para este último caso, la columna no se separa con una línea vertical. |
MFT_OWNERDRAW | Asigna la responsabilidad del trazado del ítem de menú a la ventana a la que pertenece el menú. La ventana recibe un mensaje WM_MEASUREITEM antes de que el menú se muestre por primera vez, y un mensaje WM_DRAWITEM cada vez que la apariencia del ítem de menú deba ser actualizada. Si este valor se especifica, el miembro dwTypeData contiene un valor de 32 bits definido por la aplicación. |
MFT_RADIOCHECK | Muestra los ítems marcados usando la marca del radio-button en lugar una marca de chequeo si el miembro hbmpChecked es NULL. |
MFT_RIGHTJUSTIFY | Justifica a la derecha el ítem de menú y los ítems siguientes. Este valor sólo es válido si el ítem de menú está en una barra de menú. |
MFT_RIGHTORDER | Windows 95/98/Me, Windows 2000/XP: especifica que los menús en cascada se muestran de derecha a izquierda (por defecto es de izquierda a derecha). Esta opción se usa para soportar lenguajes que se escriben de derecha a izquierda, como el árabe o el hebreo. |
MFT_SEPARATOR | Especifica que el ítem de menú es un separador. Un ítem de menú separador aparece como una línea horizontal divisora. Los miembros dwTypeData y cch son ignorados. Este valor es válido sólo en un menú desplegable, un submenú o un menú de atajo. |
MFT_STRING | Muestra el ítem de menú usando una cadena de texto. El miembro dwTypeData es el puntero
a la cadena terminada en nulo, y el miembro cch es la longitud de la cadena. Windows 98/Me, Windows 2000/XP: MFT_STRING se ha reemplazado por MIIM_STRING. |
Asignar el valor MIIM_TYPE a fMask para usar fType.
Windows 98/Me y Windows 2000/XP: fType se usa sólo si fMask tiene el valor MIIM_FTYPE.
Los valores MFT_BITMAP, MFT_SEPARATOR y MFT_STRING no pueden ser combinados con ningún otro.
fState: estado del ítem de menú. Asignar MIIM_STATE a fMask para usar fState. Este miembro puede ser uno o más de estos valores:
Valor | Significado |
---|---|
MFS_CHECKED | Marca el ítem de menú. Para más información sobre ítems de menú marcados, ver el miembro hbmpChecked. |
MFS_DEFAULT | Especifica que el ítem de menú es el ítem por defecto. Un menú puede contener sólo un ítem de menú por defecto, que se muestra en negrita. |
MFS_DISABLED | Inhibe el ítem de menú de modo que no puede ser seleccionado, pero no lo oscurece. |
MFS_ENABLED | Desinhibe el ítem de menú de modo que pueda ser seleccionado. Este es el estado por defecto. |
MFS_GRAYED | Inhibe el ítem de menú y lo oscurece de modo que no puede ser seleccionado. |
MFS_HILITE | Resalta el ítem de menú. |
MFS_UNCHECKED | Quita la marca del ítem de menú. Para más información sobre ítems de menú marcados, ver el miembro hbmpChecked. |
MFS_UNHILITE | Elimina el resaltado del ítem de menú. Este es el estado por defecto. |
wID: valor de 16 bits definido por la aplicación que identifica el ítem de menú. Asignar MIIM_ID a fMask para usar wID.
hSubMenu: manipulador a menú desplegable o submenú asociado con el ítem de menú. Si el ítem de menú no es un ítem que abre un menú desplegable o submenú, este miembro es NULL. Asignar MIIM_SUBMENU a fMask para usar hSubMenu.
hbmpChecked: manipulador al mapa de bits a mostrar junto al ítem si está marcadod. Si este miembro es NULL, se usa el mapa de bits por defecto. Si se especifica el valor de tipo MFT_RADIOCHECK, el mapa de bits por defecto es el círculo. En otro caso, es la marca de verificación. Asignar MIIM_CHECKMARKS a fMask para usar hbmpChecked.
hbmpUnchecked: manipulador al mapa de bits a mostrar junto al ítem si no está marcado. Si este miembro es NULL, no se usa mapa de bits.
dwItemData: valor definido por la aplicación asociado con el ítem de menú. Asignar MIIM_DATA a fMask para usar dwItemData.
dwTypeData: contenido del ítem de menú. El significado de este miembro depende del tipo de ítem de menú: los valores MFT_BITMAP, MFT_SEPARATOR o MFT_STRING; y se usa sólo si se activa la bandera MIIM_TYPE en el miembro fMask.
Para recuperar un ítem de menú de tipo MFT_STRING, primero calcular el tamaño de la cadena asignado NULL al miembro dwTypeData de MENUITEMINFO y llamando a GetMenuItemInfo. El valor de cch+1 es el tamaño necesario. Entonces reservar la memoria necesaria en un búfer, colocar el puntero al búfer en dwTypeData, incrementar cch y llamar a GetMenuItemInfo una vez más para rellenar el búfer con la cadena. Si el ítem de menú a recuperar es de otro tipo, entonce GetMenuItemInfo asigna al miembro dwTypeData el valor adecuado según el valor especificado por el miembro fType.
Cuando se usa con la función SetMenuItemInfo, este miembro suele contener un tipo de valor que se especifica en el miembro fType.
Windows 98/Me y Windows 2000/XP: dwTypeData sólo se usa si el meimbro fMask vale MIIM_STRING.
cch: longitud del texto del ítem de menú, cuando se recibe información sobre el ítem de menú del tipo MFT_STRING. Este valor es cero para otros tipos de ítems de menú. Este miembro se ignora cuando el contenido del ítem de menú es asignado.
Hay que tener en cuenta que antes de llamar a GetMenuItemInfo, la aplicación debe asignar al miembro cch la longitud del búfer apuntado por el miembro dwTypeData. Si el ítem de menú a recuperar es de tipo MFT_STRING (como se indica en el miembro fType), entonces GetMenuItemInfo cambia el valor de cch a la longitud del texto del ítem de menú. Si el ítem de menú a recuperar es de algún otro tipo, GetMenuItemInfo asigna cero al campo cch.
Windows 98/Me, Windows 2000/XP: el meimbro cch se usa cuando se asigna MIIM_STRING al miembro fMask.
hbmpItem: Windows 98/Me, Windows 2000/XP. Manipulador de mapa de bits a mostrar, o puede ser uno de los valores de la siguiente tabla. Se usa si el miembro fMask contiene el valor MIIM_BITMAP.
Valor | Significado |
---|---|
HBMMENU_CALLBACK | Se muestra un mapa de bits por la ventana a la que pertenece el menú. La aplicación debe procesar los mensajes WM_MEASUREITEM y WM_DRAWITEM. |
HBMMENU_MBAR_CLOSE | El botón de cerrar para barra de menú. |
HBMMENU_MBAR_CLOSE_D | El botón de cerrar inhibido para la barra de menú. |
HBMMENU_MBAR_MINIMIZE | El botón de minimizar para barra de menú. |
HBMMENU_MBAR_MINIMIZE_D | El botón de minimizar inhibido para barra de menú. |
HBMMENU_MBAR_RESTORE | El botón de restaurarr para barra de menú. |
HBMMENU_POPUP_CLOSE | El botón de cerrar para el submenú. |
HBMMENU_POPUP_MAXIMIZE | El botón de maximizar para el submenú. |
HBMMENU_POPUP_MINIMIZE | El botón de minimizar para el submenú. |
HBMMENU_POPUP_RESTORE | El botón de restaurar para el submenú. |
HBMMENU_SYSTEM | Icono de Windows o el icono de la ventana especificado en dwItemData. |
Observaciones
La estructura MENUITEMINFO se usa con las funciones GetMenuItemInfo, InsertMenuItem y SetMenuItemInfo.