CMenu::InsertMenu

BOOLInsertMenu (UINTnPosition,UINTnFlags,UINTnIDNewItem=0,LPCTSTRLpszNewItemNULL=);

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

Rückgabewert

Ungleich NULL, wenn die Funktion erfolgreich ist; andernfalls 0.

Parameter

nPosition

Gibt das Menüelement vor dem neuen Menüpunkt eingefügt werden soll. Des nFlags -Parameters kann verwendet werden, um nPosition auf folgende Weise zu interpretieren:

nFlags Interpretation der nPosition
MF_BYCOMMAND Gibt an, dass der Parameter die Befehls-ID, der das vorhandene Menüelement gibt. Dies ist die Standardeinstellung, wenn weder MF_BYCOMMAND noch MF_BYPOSITION festgelegt ist.
MF_BYPOSITION Gibt an, dass der Parameter die Position des bestehenden Menüpunkt gibt. Das erste Element befindet sich an Position 0. Wenn nPosition -1 ist, wird das neue Menüelement am Ende des Menüs angefügt.

nFlags

Gibt an, wie nPosition interpretiert wird und gibt Informationen über den Zustand des neuen Menüelements, wenn es zum Menü hinzugefügt wird. Eine Liste der Flags, die festgelegt werden können, finden Sie unter die Memberfunktion AppendMenu . Verwenden Sie mehr als einen Wert angeben, der bitweise OR-Operator um zu kombinieren mit dem Flag MF_BYCOMMAND oder MF_BYPOSITION.

nIDNewItem

Gibt die Befehls-ID für das neue Menüelement oder, wenn nFlags MF_POPUP, die Menü-Handle (HMENU) im Pop-up Menü festgelegt ist. Der nIDNewItem -Parameter wird (nicht erforderlich) ignoriert, wenn Sie MF_SEPARATOR nFlags festgelegt ist.

lpszNewItem

Gibt den Inhalt des neuen Menüelements. nFlags kann verwendet werden, um LpszNewItem auf folgende Weise zu interpretieren:

nFlags Interpretation der lpszNewItem
MF_OWNERDRAW Enthält einen Anwendung bereitgestellte 32-Bit-Wert, den die Anwendung verwenden kann, um zusätzliche Daten zugeordnet Menüpunkt pflegen. Diese 32-Bit-Wert steht für die Anwendung in der ItemData -Member der Struktur vom die WM_MEASUREITEM und WM_DRAWITEM -Meldungen. Diese Meldungen werden gesendet, wenn das Menüelement zunächst angezeigt wird oder geändert wird.
MF_STRING Enthält einen langen Zeiger auf eine Null-terminierte Zeichenfolge. Dies ist die Standardinterpretation.
MF_SEPARATOR Der LpszNewItem -Parameter wird ignoriert (nicht erforderlich).

pBmp

Punkte auf einer CBitmap -Objekt, das als das Menüelement verwendet wird.

Bemerkungen

Fügt ein neues Menüelement an der Position angegebenen nPosition und verschiebt andere Elemente nach unten im Menü. Die Anwendung kann den Zustand des Menüelements angeben, indem Sie Werte in nFlags.

Wenn ein Menü, das in einem Window befindet (ob oder nicht das Fenster angezeigt wird) geändert wird, sollte die Anwendung CWnd::DrawMenuBar aufrufen.

Wenn nIDNewItem ein Popup-Menü gibt, wird es Teil des Menüs, in die es eingefügt wird. Wenn das Menü zerstört ist, wird das eingefügte Menü auch zerstört werden. Eine eingefügte Menü sollte getrennt werden aus einem CMenu -Objekt, um Konflikte zu vermeiden.

Wenn das aktive, die, das mehrere Dokument Interface (MDI) untergeordnete Fenster maximiert ist, und eine Anwendung Einfügungen ist ein Popupmenü in der MDI-Anwendung im Menü durch Aufrufen dieser Funktion und das MF_BYPOSITION -Flag, das Menü angeben eine Position weiter links als erwartet eingefügt. Dies geschieht, weil das Systemmenü für das aktive untergeordnete MDI-Fenster in der ersten Position der MDI-Rahmenfenster Menüleiste eingefügt wird. Um das Menü korrekt zu positionieren, muss die Anwendung 1 den Positionswert hinzufügen, die ansonsten verwendet würden. Eine Anwendung kann die WM_MDIGETACTIVE -Nachricht verwenden, um festzustellen, ob das aktive untergeordnete Fenster maximiert wird.

Übersicht über die CMenu |nbsp; Member der Klasse | Hierarchiediagramm

Siehe auch&Nbsp;CMenu::AppendMenu, CWnd::DrawMenuBar, CMenu::SetMenuItemBitmaps, CMenu::Detach, :: InsertMenu

Index