CMenu::ModifyMenu
Modifie un élément de menu existant à la position spécifiée par nPosition.
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL
);
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem,
const CBitmap* pBmp
);
Paramètres
nPosition
Spécifie l'élément de menu à modifier. Le paramètre d' nFlags peut être utilisé pour interpréter nPosition des façons suivantes :nFlags
Interprétation de nPosition
MF_BYCOMMAND
Spécifie que le paramètre permet l'ID de commande de l'élément de menu existant. Valeur par défaut si aucun MF_BYCOMMAND ni MF_BYPOSITION n'est défini.
MF_BYPOSITION
Spécifie que le paramètre permet la position de l'élément de menu existant. Le premier élément est à la position 0.
nFlags
Spécifie comment nPosition est interprète et fournit des informations sur les modifications à apporter à l'élément de menu. Pour une liste des balises qui peuvent être définies, consultez la fonction membre d' AppendMenu .nIDNewItem
Spécifie l'ID de commande de l'élément de menu modifié 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 peut être utilisé pour interpréter lpszNewItem des façons suivantes :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 MF_MEASUREITEM et MF_DRAWITEM.
MF_STRING
Contient un long pointeur vers une chaîne terminée par le caractère NULL ou à CString.
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 spécifie le nouvel état de l'élément de menu en définissant des valeurs dans nFlags. Si cette fonction remplace un menu contextuel associé à l'élément de menu, il perd le menu contextuel ancien et libère la mémoire utilisée par le menu contextuel.
Lorsque nIDNewItem spécifie un menu contextuel, il devient partie intégrante du menu dans lequel il est inséré. Si ce menu est détruit, le menu sera inséré également détruit. Un menu inséré doit être détaché d'un objet d' CMenu pour éviter les conflits.
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. Pour modifier les attributs des éléments de menu existants, il est beaucoup plus rapide pour utiliser les fonctions membres d' CheckMenuItem et d' EnableMenuItem .
Exemple
Consultez l'exemple pour CMenu::InsertMenu.
Configuration requise
Header: afxwin.h