AppendMenuA, fonction (winuser.h)
Ajoute un nouvel élément à la fin de la barre de menus, du menu déroulant, du sous-menu ou du menu contextuel spécifiés. Vous pouvez utiliser cette fonction pour spécifier le contenu, l’apparence et le comportement de l’élément de menu.
Syntaxe
BOOL AppendMenuA(
[in] HMENU hMenu,
[in] UINT uFlags,
[in] UINT_PTR uIDNewItem,
[in, optional] LPCSTR lpNewItem
);
Paramètres
[in] hMenu
Type : HMENU
Poignée de la barre de menus, du menu déroulant, du sous-menu ou du 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 |
---|---|
|
Utilise une bitmap comme élément de menu. Le paramètre lpNewItem contient un handle pour la bitmap. |
|
Place une marque de case activée en regard de l’élément de menu. Si l’application fournit des bitmaps case activée-mark (voir SetMenuItemBitmaps), cet indicateur affiche l’image bitmap case activée-mark en regard de l’élément de menu. |
|
Désactive l’élément de menu afin qu’il ne puisse pas être sélectionné, mais que l’indicateur ne le grise pas. |
|
Active l’élément de menu afin qu’il puisse être sélectionné et le restaure à partir de son état grisé. |
|
Désactive l’élément de menu et le grise afin qu’il ne puisse pas être sélectionné. |
|
Fonctionne comme 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. |
|
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. |
|
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 qui possède le 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. |
|
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 permet d’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. |
|
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. |
|
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. |
|
Ne place pas de marque case activée en regard de l’élément (par défaut). Si l’application fournit des bitmaps case activée-mark (voir SetMenuItemBitmaps), cet indicateur affiche l’image bitmap en clair 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, un 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 varie selon que le paramètre uFlags inclut les valeurs suivantes.
Valeur | Signification |
---|---|
|
Contient un handle bitmap. |
|
Contient une valeur fournie par l’application qui peut être utilisée pour gérer 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 vers le paramètre lParam du message WM_MEASUREITEM ou WM_DRAWITEM envoyé lors de la création du menu ou de la mise à jour de son apparence. |
|
Contient un pointeur vers une chaîne terminée par null. |
Valeur retournée
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étaillées sur l’erreur, appelez GetLastError.
Remarques
L’application doit appeler la fonction DrawMenuBar chaque fois qu’un menu change, que le menu se trouve dans une fenêtre affichée.
Pour que les accélérateurs de clavier fonctionnent avec des éléments de menu bitmap ou dessinés par le propriétaire, le propriétaire du menu doit traiter le WM_MENUCHAR message. Pour plus d’informations, consultez Menus dessinés par le propriétaire et message WM_MENUCHAR.
Les groupes d’indicateurs suivants ne peuvent pas être utilisés ensemble :
- MF_BITMAP, MF_STRING et MF_OWNERDRAW
- MF_CHECKED et MF_UNCHECKED
- MF_DISABLED, MF_ENABLED et MF_GRAYED
- MF_MENUBARBREAK et MF_MENUBREAK
Exemples
Pour obtenir un exemple, consultez Ajout de lignes et de graphiques à un menu.
Notes
L’en-tête winuser.h définit AppendMenu 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
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winuser.h (inclure 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
Conceptuel
Référence