CMenu::AppendMenu
Ajoute un élément à la fin d'un menu.
BOOL AppendMenu(
UINT nFlags,
UINT_PTR nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL
);
BOOL AppendMenu(
UINT nFlags,
UINT_PTR nIDNewItem,
const CBitmap* pBmp
);
Paramètres
nFlags
Spécifie des informations sur l'état du nouvel élément de menu lorsqu'il est ajouté au menu. Il se compose d'un ou plusieurs des valeurs répertoriées dans la section Notes.nIDNewItem
Spécifie l'ID de commande du nouvel élément de menu ou, si nFlags a la valeur MF_POPUP, le handle de menu (HMENU) d'un menu contextuel. Le paramètre d' nIDNewItem est ignoré (sauf) si nFlags a la valeur MF_SEPARATOR.lpszNewItem
Spécifie le contenu du nouvel élément de menu. Le paramètre d' nFlags est utilisé pour interpréter lpszNewItem de la manière suivante :nFlags
Interprétation de lpszNewItem
MF_OWNERDRAW
Contient une valeur 32 bits fournie par l'application que l'application peut utiliser pour mettre à jour les informations supplémentaires associées à l'élément de menu. Cette valeur 32 bits est disponible à l'application lorsqu'il traite WM_MEASUREITEM et des messages d' WM_DRAWITEM . La valeur est stockée dans le membre d' itemData de la structure fournie avec ces messages.
MF_STRING
Contient un pointeur vers une chaîne terminée par le caractère NULL. c'est la traduction par défaut.
MF_SEPARATOR
Le paramètre d' lpszNewItem est ignoré (sauf).
pBmp
Les points à CBitmap objet qui sera utilisé comme élément de menu.
Valeur de retour
Une valeur différente de zéro si la fonction est réussie ; sinon 0.
Notes
L'application peut spécifier l'état de l'élément de menu en définissant des valeurs dans nFlags. Lorsque nIDNewItem spécifie un menu contextuel, il devient partie intégrante du menu auquel il est ajouté. Si ce menu est détruit, le menu sera ajouté également détruit. Un menu ajouté doit être détaché d'un objet d' CMenu pour éviter les conflits. Notez que MF_STRING et MF_OWNERDRAW sont pas valides pour la version bitmap d' AppendMenu.
La liste suivante décrit les balises qui peuvent être définies dans nFlags:
MF_CHECKED agit comme toggle avec MF_UNCHECKED pour définir la coche par défaut en regard de l'élément. Lorsque l'application fournit des bitmaps de coche (consultez la fonction membre de SetMenuItemBitmaps ), « coche sur » la bitmap s'affiche.
MF_UNCHECKED agit comme toggle avec MF_CHECKED pour supprimer une coche en regard de l'élément. Lorsque l'application fournit des bitmaps de coche (consultez la fonction membre d' SetMenuItemBitmaps ), « coche off » de la bitmap s'affiche.
MF_DISABLED désactive l'élément de menu afin qu'il ne puisse pas être sélectionné mais ne l'estompe pas.
MF_ENABLED active l'élément de menu afin qu'il puisse être sélectionnée et les restaure il de son état grisé.
MF_GRAYED désactive l'élément de menu afin qu'il ne puisse pas être sélectionné et l'estompe.
MF_MENUBARBREAK définit l'élément sur une nouvelle ligne dans les menus statiques ou dans une nouvelle colonne dans les menus contextuels. La nouvelle colonne de menu contextuel est séparée de la colonne ancienne par une ligne de séparation verticale.
MF_MENUBREAK définit l'élément sur une nouvelle ligne dans les menus statiques ou dans une nouvelle colonne dans les menus contextuels. Aucune ligne de séparation n'est définie entre les colonnes.
MF_OWNERDRAW spécifie que l'élément est un élément owner draw. Lorsque le menu s'affiche pour la première fois, la fenêtre qui possède le menu reçoit un message d' WM_MEASUREITEM , qui récupère la hauteur et la largeur de l'élément de menu. Le message d' WM_DRAWITEM est celui envoyé chaque fois que le propriétaire doit mettre à jour l'apparence visuelle de l'élément de menu. Cette option n'est pas valide pour un élément de menu de niveau supérieur.
MF_POPUP spécifie que l'élément de menu a un menu contextuel associé. Le paramètre d'ID spécifie un handle d'un menu contextuel qui doit être associé à l'élément. Utilisé pour ajouter un menu contextuel de niveau supérieur ou un menu contextuel hiérarchique à un élément de menu contextuel.
MF_SEPARATOR dessine une ligne de séparation horizontale. Peut être utilisé dans un menu contextuel. Cette ligne ne peut pas être estompée, désactivée, ou en surbrillance. d'autres paramètres sont ignorés.
MF_STRING spécifie que l'élément de menu est une chaîne.
Chacune des balises suivantes de listes de groupes qui sont mutuellement exclusif et ne peut pas être utilisée ensemble :
MF_DISABLED, MF_ENABLED, et MF_GRAYED
MF_STRING, MF_OWNERDRAW, MF_SEPARATOR, et la version bitmap
MF_MENUBARBREAK et MF_MENUBREAK
MF_CHECKED et MF_UNCHECKED
Chaque fois qu'un menu qui réside dans une fenêtre est modifié (si la fenêtre est affichée), l'application doit appeler CWnd::DrawMenuBar.
Exemple
Consultez l'exemple pour CMenu::CreateMenu.
Configuration requise
Header: afxwin.h