Freigeben über


InsertMenuW-Funktion (winuser.h)

Fügt ein neues Menüelement in ein Menü ein, wobei andere Elemente nach unten im Menü verschoben werden.

Hinweis Die funktion InsertMenu wurde durch die funktion InsertMenuItem ersetzt. Sie können InsertMenuweiterhin verwenden, wenn Sie jedoch keine der erweiterten Features von InsertMenuItembenötigen.
 

Syntax

BOOL InsertMenuW(
  [in]           HMENU    hMenu,
  [in]           UINT     uPosition,
  [in]           UINT     uFlags,
  [in]           UINT_PTR uIDNewItem,
  [in, optional] LPCWSTR  lpNewItem
);

Parameter

[in] hMenu

Typ: HMENU

Ein Handle zum Ändern des Menüs.

[in] uPosition

Typ: UINT-

Das Menüelement, vor dem das neue Menüelement eingefügt werden soll, wie durch den parameter uFlags bestimmt wird.

[in] uFlags

Typ: UINT-

Steuert die Interpretation des uPosition- Parameters und des Inhalts, der Darstellung und des Verhaltens des neuen Menüelements. Dieser Parameter muss einen der folgenden erforderlichen Werte enthalten.

Wert Bedeutung
MF_BYCOMMAND
0x000000000L
Gibt an, dass der uPosition Parameter den Bezeichner des Menüelements angibt. Das MF_BYCOMMAND Flag ist die Standardeinstellung, wenn weder das MF_BYCOMMAND noch MF_BYPOSITION Flag angegeben wird.
MF_BYPOSITION
0x00000400L
Gibt an, dass der uPosition--Parameter die nullbasierte relative Position des neuen Menüelements angibt. Wenn uPosition- -1 ist, wird das neue Menüelement am Ende des Menüs angefügt.
 

Der Parameter muss auch mindestens einen der folgenden Werte enthalten.

Wert Bedeutung
MF_BITMAP
0x00000004L
Verwendet eine Bitmap als Menüelement. Der lpNewItem--Parameter enthält ein Handle für die Bitmap.
MF_CHECKED
0x00000008L
Platziert ein Häkchen neben dem Menüelement. Wenn die Anwendung Häkchenbitmaps bereitstellt (siehe SetMenuItemBitmaps), zeigt dieses Flag die Häkchenbitmap neben dem Menüelement an.
MF_DISABLED
0x000000002L
Deaktiviert das Menüelement, sodass es nicht ausgewählt werden kann, aber nicht grau.
MF_ENABLED
0x000000000L
Aktiviert das Menüelement, sodass es ausgewählt und aus dem grauen Zustand wiederhergestellt werden kann.
MF_GRAYED
0x00000001L
Deaktiviert das Menüelement und graut es, sodass es nicht ausgewählt werden kann.
MF_MENUBARBREAK
0x000000020L
Funktioniert mit der MF_MENUBREAK-Kennzeichnung für eine Menüleiste. Bei einem Dropdownmenü, untermenü oder Kontextmenü wird die neue Spalte durch eine vertikale Linie von der alten Spalte getrennt.
MF_MENUBREAK
0x00000040L
Platziert das Element in einer neuen Zeile (für Menüleisten) oder in einer neuen Spalte (für ein Dropdownmenü, Untermenü oder Kontextmenü), ohne Spalten zu trennen.
MF_OWNERDRAW
0x00000100L
Gibt an, dass es sich bei dem Element um ein vom Besitzer gezeichnetes Element handelt. Bevor das Menü zum ersten Mal angezeigt wird, empfängt das Fenster, das das Menü besitzt, eine WM_MEASUREITEM Nachricht, um die Breite und Höhe des Menüelements abzurufen. Die WM_DRAWITEM Nachricht wird dann an die Fensterprozedur des Besitzerfensters gesendet, wenn die Darstellung des Menüelements aktualisiert werden muss.
MF_POPUP
0x000000010L
Gibt an, dass das Menüelement ein Dropdownmenü oder untermenü öffnet. Der parameter uIDNewItem gibt ein Handle für das Dropdownmenü oder untermenü an. Diese Kennzeichnung wird verwendet, um einer Menüleiste oder einem Menüelement einen Menünamen hinzuzufügen, das ein Untermenü zu einem Dropdownmenü, Untermenü oder Kontextmenü öffnet.
MF_SEPARATOR
0x00000800L
Zeichnet eine horizontale Trennlinie. Diese Kennzeichnung wird nur in einem Dropdownmenü, Untermenü oder Kontextmenü verwendet. Die Linie kann nicht grau, deaktiviert oder hervorgehoben werden. Die parameter lpNewItem und uIDNewItem werden ignoriert.
MF_STRING
0x000000000L
Gibt an, dass das Menüelement eine Textzeichenfolge ist; der parameter lpNewItem ist ein Zeiger auf die Zeichenfolge.
MF_UNCHECKED
0x000000000L
Platziert kein Häkchen neben dem Menüelement (Standard). Wenn die Anwendung Häkchenbitmaps bereitstellt (siehe SetMenuItemBitmaps--Funktion), zeigt dieses Flag die klare Bitmap neben dem Menüelement an.

[in] uIDNewItem

Typ: UINT_PTR

Der Bezeichner des neuen Menüelements oder, wenn der uFlags Parameter die MF_POPUP Flag festgelegt hat, ein Handle für das Dropdownmenü oder untermenü.

[in, optional] lpNewItem

Typ: LPCTSTR-

Der Inhalt des neuen Menüelements. Die Interpretation von lpNewItem- hängt davon ab, ob der uFlags Parameter wie folgt die MF_BITMAP, MF_OWNERDRAWoder MF_STRING Kennzeichnung enthält.

Wert Bedeutung
MF_BITMAP
0x00000004L
Enthält ein Bitmaphandle.
MF_OWNERDRAW
0x00000100L
Enthält einen vom Anwendung bereitgestellten Wert, mit dem zusätzliche Daten im Zusammenhang mit dem Menüelement verwaltet werden können. Der Wert befindet sich im itemData Element der Struktur, auf das durch den lParam Parameter der WM_MEASUREITEM oder WM_DRAWITEM Nachricht verwiesen wird, die beim Erstellen des Menüelements oder dessen Darstellung gesendet wird.
MF_STRING
0x000000000L
Enthält einen Zeiger auf eine mit Null beendete Zeichenfolge (standard).

Rückgabewert

Typ: BOOL-

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Die Anwendung muss die DrawMenuBar- Funktion aufrufen, wenn sich ein Menü ändert, ob sich das Menü in einem angezeigten Fenster befindet.

Die folgenden Flaggruppen können nicht zusammen verwendet werden:

  • MF_BYCOMMAND und MF_BYPOSITION
  • MF_DISABLED, MF_ENABLEDund MF_GRAYED
  • MF_BITMAP, MF_STRING, MF_OWNERDRAWund MF_SEPARATOR
  • MF_MENUBARBREAK und MF_MENUBREAK
  • MF_CHECKED und MF_UNCHECKED

Anmerkung

Der winuser.h-Header definiert InsertMenu als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- winuser.h (enthalten Windows.h)
Library User32.lib
DLL- User32.dll
API-Satz ext-ms-win-ntuser-menu-l1-1-0 (eingeführt in Windows 8)

Siehe auch

AppendMenu-

Konzeptionelle

DeleteMenu-

DrawMenuBar-

InsertMenuItem-

Menüs

ModifyMenu-

andere Ressourcen

Referenz-

RemoveMenu-

SetMenuItemBitmaps

WM_DRAWITEM

WM_MEASUREITEM