MENUITEMINFOA, structure (winuser.h)

Contient des informations sur un élément de menu.

Syntaxe

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;

Membres

cbSize

Type : UINT

Taille de la structure, en octets. L’appelant doit définir ce membre sur sizeof(MENUITEMINFO).

fMask

Type : UINT

Indique les membres à récupérer ou à définir. Ce membre peut être une ou plusieurs des valeurs suivantes.

Valeur Signification
MIIM_BITMAP
0x00000080
Récupère ou définit le membre hbmpItem .
MIIM_CHECKMARKS
0x00000008
Récupère ou définit les membres hbmpChecked et hbmpUnchecked .
MIIM_DATA
0x00000020
Récupère ou définit le membre dwItemData .
MIIM_FTYPE
0x00000100
Récupère ou définit le membre fType .
MIIM_ID
0x00000002
Récupère ou définit le membre wID .
MIIM_STATE
0x00000001
Récupère ou définit le membre fState .
MIIM_STRING
0x00000040
Récupère ou définit le membre dwTypeData .
MIIM_SUBMENU
0x00000004
Récupère ou définit le membre hSubMenu .
MIIM_TYPE
0x00000010
Récupère ou définit les membres fType et dwTypeData .

MIIM_TYPE est remplacé par MIIM_BITMAP, MIIM_FTYPE et MIIM_STRING.

fType

Type : UINT

Type d’élément de menu. Ce membre peut être une ou plusieurs des valeurs suivantes.

Les valeurs MFT_BITMAP, MFT_SEPARATOR et MFT_STRING ne peuvent pas être combinées. Définissez fMasksur MIIM_TYPE pour utiliser fType.

fType est utilisé uniquement si fMask a une valeur de MIIM_FTYPE.

Valeur Signification
MFT_BITMAP
0x00000004L
Affiche l’élément de menu à l’aide d’une bitmap. Le mot d’ordre inférieur du membre dwTypeData est le handle bitmap, et le membre cch est ignoré.

MFT_BITMAP est remplacé par MIIM_BITMAP et hbmpItem.

MFT_MENUBARBREAK
0x00000020L
Places l’élément de menu sur une nouvelle ligne (pour une barre de menus) ou dans une nouvelle colonne (pour un menu déroulant, un sous-menu ou un menu contextuel). Pour un menu déroulant, un sous-menu ou un menu contextuel, une ligne verticale sépare la nouvelle colonne de l’ancienne.
MFT_MENUBREAK
0x00000040L
Places l’élément de menu sur une nouvelle ligne (pour une barre de menus) ou dans une nouvelle colonne (pour un menu déroulant, un sous-menu ou un menu contextuel). Pour un menu déroulant, un sous-menu ou un menu contextuel, les colonnes ne sont pas séparées par une ligne verticale.
MFT_OWNERDRAW
0x00000100L
Attribue la responsabilité de dessiner l’élément de menu dans la fenêtre qui possède le menu. La fenêtre reçoit un message WM_MEASUREITEM avant que le menu ne s’affiche pour la première fois, ainsi qu’un message WM_DRAWITEM chaque fois que l’apparence de l’élément de menu doit être mise à jour. Si cette valeur est spécifiée, le membre dwTypeData contient une valeur définie par l’application.
MFT_RADIOCHECK
0x00000200L
Affiche les éléments de menu sélectionnés à l’aide d’une case d’option au lieu d’une marque de case activée si le membre hbmpChecked a la valeur NULL.
MFT_RIGHTJUSTIFY
0x00004000L
Justifie à droite l’élément de menu et tous les éléments suivants. Cette valeur est valide uniquement si l’élément de menu se trouve dans une barre de menus.
MFT_RIGHTORDER
0x00002000L
Spécifie que les menus cascadent de droite à gauche (la valeur par défaut est de gauche à droite). Il est utilisé pour prendre en charge les langues de droite à gauche, telles que l’arabe et l’hébreu.
MFT_SEPARATOR
0x00000800L
Spécifie que l’élément de menu est un séparateur. Un séparateur d’éléments de menu apparaît sous la forme d’une ligne de division horizontale. Les membres dwTypeData et cch sont ignorés. Cette valeur est valide uniquement dans un menu déroulant, un sous-menu ou un menu contextuel.
MFT_STRING
0x00000000L
Affiche l’élément de menu à l’aide d’une chaîne de texte. Le membre dwTypeData est le pointeur vers une chaîne terminée par null, et le membre cch est la longueur de la chaîne.

MFT_STRING est remplacé par MIIM_STRING.

fState

Type : UINT

État de l’élément de menu. Ce membre peut être une ou plusieurs de ces valeurs. Définissez fMasksur MIIM_STATE pour utiliser fState.

Valeur Signification
MFS_CHECKED
0x00000008L
Vérifie l’élément de menu. Pour plus d’informations sur les éléments de menu sélectionnés, consultez le membre hbmpChecked .
MFS_DEFAULT
0x00001000L
Spécifie que l’élément de menu est la valeur par défaut. Un menu ne peut contenir qu’un seul élément de menu par défaut, qui est affiché en gras.
MFS_DISABLED
0x00000003L
Désactive l’élément de menu et le grise afin qu’il ne puisse pas être sélectionné. Cela équivaut à MFS_GRAYED.
MFS_ENABLED
0x000000000L
Active l’élément de menu afin qu’il puisse être sélectionné. Il s’agit de la valeur par défaut.
MFS_GRAYED
0x00000003L
Désactive l’élément de menu et le grise afin qu’il ne puisse pas être sélectionné. Cela équivaut à MFS_DISABLED.
MFS_HILITE
0x000000080L
Met en surbrillance l’élément de menu.
MFS_UNCHECKED
0x000000000L
Désélectionnez l’élément de menu. Pour plus d’informations sur les éléments de menu vides, consultez le membre hbmpChecked .
MFS_UNHILITE
0x000000000L
Supprime la mise en surbrillance de l’élément de menu. Il s’agit de la valeur par défaut.

wID

Type : UINT

Valeur définie par l’application qui identifie l’élément de menu. Définissez fMasksur MIIM_ID pour utiliser wID.

hSubMenu

Type : HMENU

Handle du menu déroulant ou du sous-menu associé à l’élément de menu. Si l’élément de menu n’est pas un élément qui ouvre un menu déroulant ou un sous-menu, ce membre a la valeur NULL. Définissez fMasksur MIIM_SUBMENU pour utiliser hSubMenu.

hbmpChecked

Type : HBITMAP

Handle de la bitmap à afficher en regard de l’élément s’il est sélectionné. Si ce membre a la valeur NULL, une image bitmap par défaut est utilisée. Si la valeur de type MFT_RADIOCHECK est spécifiée, la bitmap par défaut est une puce. Sinon, il s’agit d’une marque case activée. Définissez fMasksur MIIM_CHECKMARKS pour utiliser hbmpChecked.

hbmpUnchecked

Type : HBITMAP

Handle de la bitmap à afficher en regard de l’élément s’il n’est pas sélectionné. Si ce membre a la valeur NULL, aucune bitmap n’est utilisée. Définissez fMasksur MIIM_CHECKMARKS pour utiliser hbmpUnchecked.

dwItemData

Type : ULONG_PTR

Valeur définie par l’application associée à l’élément de menu. Définissez fMasksur MIIM_DATA pour utiliser dwItemData.

dwTypeData

Type : LPTSTR

Contenu de l’élément de menu. La signification de ce membre dépend de la valeur de fType et est utilisée uniquement si l’indicateur MIIM_TYPE est défini dans le membre fMask .

Pour récupérer un élément de menu de type MFT_STRING, recherchez d’abord la taille de la chaîne en définissant le membre dwTypeData de MENUITEMINFO sur NULL , puis en appelant GetMenuItemInfo. La valeur de cch+1 correspond à la taille nécessaire. Ensuite, allouez une mémoire tampon de cette taille, placez le pointeur vers la mémoire tampon dans dwTypeData, incrémentez cch et appelez à nouveau GetMenuItemInfo pour remplir la mémoire tampon avec la chaîne. Si l’élément de menu récupéré est d’un autre type, GetMenuItemInfo définit le membre dwTypeData sur une valeur dont le type est spécifié par le membre fType .

Lors de l’utilisation avec la fonction SetMenuItemInfo , ce membre doit contenir une valeur dont le type est spécifié par le membre fType .

dwTypeData est utilisé uniquement si l’indicateur MIIM_STRING est défini dans le membre fMask

cch

Type : UINT

Longueur du texte de l’élément de menu, en caractères, lorsque des informations sur un élément de menu du type MFT_STRING sont reçues. Toutefois, cch n’est utilisé que si l’indicateur MIIM_TYPE est défini dans le membre fMask et a la valeur zéro dans le cas contraire. En outre, cch est ignoré lorsque le contenu d’un élément de menu est défini en appelant SetMenuItemInfo.

Notez que, avant d’appeler GetMenuItemInfo, l’application doit définir cch sur la longueur de la mémoire tampon vers laquelle pointe le membre dwTypeData . Si l’élément de menu récupéré est de type MFT_STRING (comme indiqué par le membre fType ), GetMenuItemInfo remplace cch par la longueur du texte de l’élément de menu. Si l’élément de menu récupéré est d’un autre type, GetMenuItemInfo définit le champ cch sur zéro.

Le membre cch est utilisé lorsque l’indicateur MIIM_STRING est défini dans le membre fMask .

hbmpItem

Type : HBITMAP

Handle de la bitmap à afficher, ou il peut s’agir de l’une des valeurs du tableau suivant. Il est utilisé lorsque l’indicateur MIIM_BITMAP est défini dans le membre fMask .

Valeur Signification
HBMMENU_CALLBACK
((HBITMAP) -1)
Bitmap dessinée par la fenêtre qui possède le menu. L’application doit traiter les messages WM_MEASUREITEM et WM_DRAWITEM .
HBMMENU_MBAR_CLOSE
((HBITMAP) 5)
Bouton Fermer pour la barre de menus.
HBMMENU_MBAR_CLOSE_D
((HBITMAP) 6)
Bouton fermer désactivé pour la barre de menus.
HBMMENU_MBAR_MINIMIZE
((HBITMAP) 3)
Bouton Réduire pour la barre de menus.
HBMMENU_MBAR_MINIMIZE_D
((HBITMAP) 7)
Bouton réduire désactivé pour la barre de menus.
HBMMENU_MBAR_RESTORE
((HBITMAP) 2)
Bouton Restaurer pour la barre de menus.
HBMMENU_POPUP_CLOSE
((HBITMAP) 8)
Bouton Fermer pour le sous-menu.
HBMMENU_POPUP_MAXIMIZE
((HBITMAP) 10)
Bouton Agrandir pour le sous-menu.
HBMMENU_POPUP_MINIMIZE
((HBITMAP) 11)
Bouton Réduire pour le sous-menu.
HBMMENU_POPUP_RESTORE
((HBITMAP) 9)
Bouton Restaurer pour le sous-menu.
HBMMENU_SYSTEM
((HBITMAP) 1)
Icône Windows ou icône de la fenêtre spécifiée dans dwItemData.

Remarques

La structure MENUITEMINFO est utilisée avec les fonctions GetMenuItemInfo, InsertMenuItem et SetMenuItemInfo .

Le menu peut afficher des éléments à l’aide de texte, de bitmaps ou des deux.

Notes

L’en-tête winuser.h définit MENUITEMINFO comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête winuser.h (inclure Windows.h)

Voir aussi

Conceptuel

GetMenuItemInfo

InsertMenuItem

Menus

Référence

SetMenuItemInfo

WM_DRAWITEM

WM_MEASUREITEM