Partager via


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

Voir aussi

Référence

CMenu, classe

Graphique de la hiérarchie

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::CheckMenuItem

CWnd::DrawMenuBar

CMenu::EnableMenuItem

CMenu::SetMenuItemBitmaps

CMenu::Detach

ModifyMenu