Partager via


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_FTYPEet 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_SEPARATORet MFT_STRING ne peuvent pas être combinées entre elles. Définissez fMask sur 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 de faible ordre du membre dwTypeData est le handle bitmap et le membre est ignoré.

MFT_BITMAP est remplacé par MIIM_BITMAP et hbmpItem.

MFT_MENUBARBREAK
0x00000020L
Place 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
Place 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 propriétaire du menu. La fenêtre reçoit un message WM_MEASUREITEM avant que le menu ne s’affiche pour la première fois, et 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 coche si le membre hbmpChecked est NULL.
MFT_RIGHTJUSTIFY
0x00004000L
Justifie avec le bouton droit 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). Ceci 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ément 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 fMask sur MIIM_STATE pour utiliser fState.

Valeur Signification
MFS_CHECKED
0x0000008L
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
0x00000000L
Active l’élément de menu afin qu’il puisse être sélectionné. Il s’agit de l’état 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
0x00000080L
Met en surbrillance l’élément de menu.
MFS_UNCHECKED
0x00000000L
Désélectionnez l’élément de menu. Pour plus d’informations sur l’effacement des éléments de menu, consultez le membre hbmpChecked.
MFS_UNHILITE
0x00000000L
Supprime la mise en surbrillance de l’élément de menu. Il s’agit de l’état par défaut.

wID

Type : uiNT

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

hSubMenu

Type : HMENU

Handle du menu déroulant ou 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 est NULL. Définissez fMask sur MIIM_SUBMENU pour utiliser hSubMenu .

hbmpChecked

Type : HBITMAP

Handle vers la bitmap à afficher en regard de l’élément s’il est sélectionné. Si ce membre est NULL, une 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 coche. Définissez fMask sur MIIM_CHECKMARKS pour utiliser hbmpChecked .

hbmpUnchecked

Type : HBITMAP

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

dwItemData

Type : ULONG_PTR

Valeur définie par l’application associée à l’élément de menu. Définissez fMask sur 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, puis appelez GetMenuItemInfo une fois de plus 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.

Lorsque vous utilisez 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 de 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 sont reçues sur un élément de menu du type MFT_STRING. Toutefois, cch est utilisé uniquement si l’indicateur MIIM_TYPE est défini dans le membre fMask et est égal à 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 sur la longueur de la mémoire tampon pointée par le membre dwTypeData . Si l’élément de menu récupéré est de type MFT_STRING (comme indiqué par le membre fType ), GetMenuItemInfo modifie cch à 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 de MIIM_STRING est défini dans le membre fMask .

hbmpItem

Type : HBITMAP

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

Valeur Signification
HBMMENU_CALLBACK
((HBITMAP) -1)
Bitmap dessinée par la fenêtre propriétaire du 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 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, InsertMenuItemet SetMenuItemInfo.

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

Note

L’en-tête winuser.h définit MENUITEMINFO comme 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
d’en-tête winuser.h (include Windows.h)

Voir aussi

conceptuelle

GetMenuItemInfo

InsertMenuItem

menus

de référence

SetMenuItemInfo

WM_DRAWITEM

WM_MEASUREITEM