CMenu::InsertMenu

BOOL InsertMenu ( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );

BOOL InsertMenu ( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );

Valeur de retour

Différent de zéro si la fonction est réussie ; sinon 0.

Paramètres

nPosition

Spécifie l'élément de menu avant lequel le nouvel élément de menu est à insérer. Le paramètre nIndicateurs peut servir à interpréter nPosition de la manière suivante:

nFlags Interprétation de nPosition
MF_BYCOMMAND Spécifie que le paramètre donne l'ID de commande de l'élément de menu existant. C'est la valeur par défaut si ni MF_BYCOMMAND ni MF_BYPOSITION.
MF_BYPOSITION Spécifie que le paramètre donne la position de l'élément de menu existant. Le premier élément est à la position 0. Si nPosition est – 1, le nouvel élément de menu est ajouté à la fin du menu.

nFlags

Spécifie comment nPosition est interprété et informations sur l'état de l'élément de menu nouveau lorsqu'elle est ajoutée au menu. Pour obtenir une liste des indicateurs qui peuvent être définis, consultez la fonction membre AppendMenu . Pour spécifier plus d'une valeur, utilisez l'opérateur de bits OR pour combiner avec l'indicateur MF_BYCOMMAND ou MF_BYPOSITION.

nIDNewItem

Spécifie soit l'ID de commande de l'élément de menu nouveau ou, si nIndicateurs est défini sur MF_POPUP, le descripteur de menu (HMENU) du menu contextuel. Le paramètre nIDNewItem est ignoré (pas nécessaire) si nIndicateurs est défini sur MF_SEPARATOR.

lpszNewItem

Spécifie le contenu de l'élément de menu nouveau. nFlags peut être utilisée pour interpréter la lpszNewItem de la manière suivante:

nFlags Interprétation de lpszNewItem
MF_OWNERDRAW Contient une valeur de 32 bits fournie à la demande que l'application peut utiliser pour maintenir les données supplémentaires associées à l'élément de menu. Cette valeur de 32 bits est disponible à la demande des membres itemData de la structure fournie par la WM_MEASUREITEM et WM_DRAWITEM messages. Ces messages sont envoyés lorsque l'élément de menu est affiché initialement ou est changé.
MF_STRING Contient un pointeur vers une chaîne terminée par null de long. C'est l'interprétation par défaut.
MF_SEPARATOR Le paramètre lpszNewItem est ignoré (ne pas nécessaire).

pBmp

Pointe vers un objet CBitmap qui sera utilisé comme l'élément de menu.

Remarques

Insère un nouvel élément de menu à la position spécifiée par nPosition et déplace les autres éléments du menu déroulant. L'application peut spécifier l'état de l'élément de menu en définissant les valeurs de nFlags.

Chaque fois qu'un menu qui se trouve dans une fenêtre est modifié (si la fenêtre est affichée), l'application doit appeler CWnd::DrawMenuBar.

Lorsque nIDNewItem spécifie un menu déroulant, il devient partie du menu dans lequel elle est insérée. Si ce menu est détruit, le menu inséré sera également détruit. Un menu inséré devrait être détaché d'un objet CMenu pour éviter un conflit.

Si l'actif qu'est maximisé la fenêtre enfant d'interface (multidocument MDI) document multiples et un INSERT demande un menu contextuel dans le menu de l'application MDI en appelant cette fonction et en spécifiant le drapeau MF_BYPOSITION , le menu est insérée une position plus loin à gauche que prévu. Cela se produit parce que le menu de contrôle de la fenêtre d'enfant MDI active est inséré dans la première position de la barre de menu de la fenêtre frame MDI. Pour positionner correctement le menu, l'application doit ajouter 1 à la valeur de position qui serait autrement utilisée. Une application peut utiliser le message WM_MDIGETACTIVE pour déterminer si la fenêtre enfant active est agrandie.

Aperçu des CMenu |nbsp ; Membres de la classe | Graphique de la hiérarchie

Voir aussinbsp ;CMenu::AppendMenu, CWnd::DrawMenuBar, CMenu::SetMenuItemBitmaps, CMenu::Detach, :: InsertMenu

Index