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