Partager via


AppendMenuW, fonction (winuser.h)

Ajoute un nouvel élément à la fin de la barre de menus spécifiée, du menu déroulant, du sous-menu ou du menu contextuel. Vous pouvez utiliser cette fonction pour spécifier le contenu, l’apparence et le comportement de l’élément de menu.

Syntaxe

BOOL AppendMenuW(
  [in]           HMENU    hMenu,
  [in]           UINT     uFlags,
  [in]           UINT_PTR uIDNewItem,
  [in, optional] LPCWSTR  lpNewItem
);

Paramètres

[in] hMenu

Type : HMENU

Poignée de la barre de menus, menu déroulant, sous-menu ou menu contextuel à modifier.

[in] uFlags

Type : uiNT

Contrôle l’apparence et le comportement du nouvel élément de menu. Ce paramètre peut être une combinaison des valeurs suivantes.

Valeur Signification
MF_BITMAP
0x00000004L
Utilise une bitmap comme élément de menu. Le paramètre lpNewItem contient un handle vers la bitmap.
MF_CHECKED
0x0000008L
Place une coche en regard de l’élément de menu. Si l’application fournit des bitmaps de coche (voir SetMenuItemBitmaps, cet indicateur affiche la bitmap de coche en regard de l’élément de menu.
MF_DISABLED
0x00000002L
Désactive l’élément de menu afin qu’il ne puisse pas être sélectionné, mais l’indicateur ne le grise pas.
MF_ENABLED
0x00000000L
Active l’élément de menu afin qu’il puisse être sélectionné et le restaure à partir de son état grisé.
MF_GRAYED
0x00000001L
Désactive l’élément de menu et le grise afin qu’il ne puisse pas être sélectionné.
MF_MENUBARBREAK
0x00000020L
Fonctionne de la même façon que l’indicateur MF_MENUBREAK pour une barre de menus. Pour un menu déroulant, un sous-menu ou un menu contextuel, la nouvelle colonne est séparée de l’ancienne colonne par une ligne verticale.
MF_MENUBREAK
0x00000040L
Place l’élément 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) sans séparer les colonnes.
MF_OWNERDRAW
0x00000100L
Spécifie que l’élément est un élément dessiné par le propriétaire. Avant que le menu ne s’affiche pour la première fois, la fenêtre propriétaire du menu reçoit un message WM_MEASUREITEM pour récupérer la largeur et la hauteur de l’élément de menu. Le message WM_DRAWITEM est ensuite envoyé à la procédure de fenêtre de la fenêtre propriétaire chaque fois que l’apparence de l’élément de menu doit être mise à jour.
MF_POPUP
0x00000010L
Spécifie que l’élément de menu ouvre un menu déroulant ou un sous-menu. Le paramètre uIDNewItem spécifie un handle dans le menu déroulant ou le sous-menu. Cet indicateur est utilisé pour ajouter un nom de menu à une barre de menus ou un élément de menu qui ouvre un sous-menu à un menu déroulant, un sous-menu ou un menu contextuel.
MF_SEPARATOR
0x00000800L
Dessine une ligne de division horizontale. Cet indicateur est utilisé uniquement dans un menu déroulant, un sous-menu ou un menu contextuel. La ligne ne peut pas être grisée, désactivée ou mise en surbrillance. Les paramètres lpNewItem et uIDNewItem sont ignorés.
MF_STRING
0x00000000L
Spécifie que l’élément de menu est une chaîne de texte ; le paramètre lpNewItem est un pointeur vers la chaîne.
MF_UNCHECKED
0x00000000L
Ne place pas de coche en regard de l’élément (valeur par défaut). Si l’application fournit des bitmaps de coche (voir SetMenuItemBitmaps), cet indicateur affiche la bitmap claire en regard de l’élément de menu.

[in] uIDNewItem

Type : UINT_PTR

Identificateur du nouvel élément de menu ou, si le paramètre uFlags est défini sur MF_POPUP, handle du menu déroulant ou du sous-menu.

[in, optional] lpNewItem

Type : LPCTSTR

Contenu du nouvel élément de menu. L’interprétation de lpNewItem dépend si le paramètre uFlags inclut les valeurs suivantes.

Valeur Signification
MF_BITMAP
0x00000004L
Contient un handle bitmap.
MF_OWNERDRAW
0x00000100L
Contient une valeur fournie par l’application qui peut être utilisée pour conserver des données supplémentaires liées à l’élément de menu. La valeur se trouve dans le membre itemData de la structure pointée par le paramètre lParam du message WM_MEASUREITEM ou WM_DRAWITEM envoyé lorsque le menu est créé ou son apparence est mis à jour.
MF_STRING
0x00000000L
Contient un pointeur vers une chaîne terminée par null.

Valeur de retour

Type : BOOL

Si la fonction réussit, la valeur de retour est différente de zéro. Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Remarques

L’application doit appeler la fonction DrawMenuBar chaque fois qu’un menu change, si le menu se trouve dans une fenêtre affichée.

Pour que les raccourcis clavier fonctionnent avec des éléments de menu bitmap ou dessinés par le propriétaire, le propriétaire du menu doit traiter le message WM_MENUCHAR. Pour plus d’informations, consultez Owner-Drawn Menus et WM_MENUCHAR Message.

Les groupes d’indicateurs suivants ne peuvent pas être utilisés ensemble :

  • MF_BITMAP, MF_STRINGet MF_OWNERDRAW
  • MF_CHECKED et MF_UNCHECKED
  • MF_DISABLED, MF_ENABLEDet MF_GRAYED
  • MF_MENUBARBREAK et MF_MENUBREAK

Exemples

Pour obtenir un exemple, consultez Ajout de lignes et de graphiques à un menu.

Note

L’en-tête winuser.h définit AppendMenu 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]
plateforme cible Windows
d’en-tête winuser.h (include Windows.h)
bibliothèque User32.lib
DLL User32.dll
ensemble d’API ext-ms-win-ntuser-menu-l1-1-0 (introduit dans Windows 8)

Voir aussi

conceptuelle

CreateMenu

DeleteMenu

DestroyMenu

DrawMenuBar

InsertMenu

InsertMenuItem

menus

ModifyMenu

de référence

RemoveMenu

SetMenuItemBitmaps