InsertMenuA-Funktion (winuser.h)
Fügt ein neues Menüelement in ein Menü ein und verschiebt andere Elemente nach unten im Menü.
Syntax
BOOL InsertMenuA(
[in] HMENU hMenu,
[in] UINT uPosition,
[in] UINT uFlags,
[in] UINT_PTR uIDNewItem,
[in, optional] LPCSTR lpNewItem
);
Parameter
[in] hMenu
Typ: HMENU
Ein Handle für das zu ändernde Menü.
[in] uPosition
Typ: UINT
Das Menüelement, vor dem das neue Menüelement eingefügt werden soll, wie durch den uFlags-Parameter bestimmt.
[in] uFlags
Typ: UINT
Steuert die Interpretation des uPosition-Parameters sowie den Inhalt, die Darstellung und das Verhalten des neuen Menüelements. Dieser Parameter muss einen der folgenden erforderlichen Werte enthalten.
Der Parameter muss auch mindestens einen der folgenden Werte enthalten.
Wert | Bedeutung |
---|---|
|
Verwendet eine Bitmap als Menüelement. Der parameter lpNewItem enthält ein Handle für die Bitmap. |
|
Setzt ein Häkchen neben dem Menüelement. Wenn die Anwendung Häkchen-Bitmaps bereitstellt (siehe SetMenuItemBitmaps), zeigt dieses Flag das Häkchenbitbit neben dem Menüelement an. |
|
Deaktiviert das Menüelement, sodass es nicht ausgewählt werden kann, graut es jedoch nicht. |
|
Aktiviert das Menüelement, sodass es ausgewählt werden kann, und stellt es aus dem abgeblendeten Zustand wieder her. |
|
Deaktiviert das Menüelement und graut es, sodass es nicht ausgewählt werden kann. |
|
Funktioniert genauso wie das MF_MENUBREAK-Flag für eine Menüleiste. Bei einem Dropdownmenü, Untermenü oder Kontextmenü wird die neue Spalte durch eine vertikale Linie von der alten Spalte getrennt. |
|
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 voneinander zu trennen. |
|
Gibt an, dass das Element ein vom Besitzer gezeichnetes Element ist. Bevor das Menü zum ersten Mal angezeigt wird, erhält das Fenster, das das Menü besitzt, eine WM_MEASUREITEM Meldung, um die Breite und Höhe des Menüelements abzurufen. Die WM_DRAWITEM Meldung wird dann an die Fensterprozedur des Besitzerfensters gesendet, wenn die Darstellung des Menüelements aktualisiert werden muss. |
|
Gibt an, dass das Menüelement ein Dropdownmenü oder Untermenü öffnet. Der uIDNewItem-Parameter gibt ein Handle für das Dropdownmenü oder untermenü an. Dieses Flag 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. |
|
Zeichnet eine horizontale Trennlinie. Dieses Flag wird nur in einem Dropdownmenü, Untermenü oder Kontextmenü verwendet. Die Zeile kann nicht abgeblendet, deaktiviert oder hervorgehoben werden. Die Parameter lpNewItem und uIDNewItem werden ignoriert. |
|
Gibt an, dass das Menüelement eine Textzeichenfolge ist. Der parameter lpNewItem ist ein Zeiger auf die Zeichenfolge. |
|
Setzt kein Häkchen neben dem Menüelement (Standard). Wenn die Anwendung Häkchen-Bitmaps bereitstellt (siehe die SetMenuItemBitmaps-Funktion ), zeigt dieses Flag die eindeutige Bitmap neben dem Menüelement an. |
[in] uIDNewItem
Typ: UINT_PTR
Der Bezeichner des neuen Menüelements oder, wenn für den uFlags-Parameter das flag MF_POPUP festgelegt ist, ein Handle zum 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 das flag MF_BITMAP, MF_OWNERDRAW oder MF_STRING enthält.
Wert | Bedeutung |
---|---|
|
Enthält ein Bitmaphandle. |
|
Enthält einen von der Anwendung bereitgestellten Wert, der verwendet werden kann, um zusätzliche Daten im Zusammenhang mit dem Menüelement zu verwalten. Der Wert befindet sich im elementData-Element der Struktur, auf die der lParam-Parameter des WM_MEASUREITEM oder WM_DRAWITEM Nachricht gesendet wird, wenn das Menüelement erstellt oder sein Aussehen aktualisiert wird. |
|
Enthält einen Zeiger auf eine null-endende Zeichenfolge (Standard). |
Rückgabewert
Typ: BOOL
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Die Anwendung muss die DrawMenuBar-Funktion aufrufen, wenn sich ein Menü ändert, unabhängig davon, ob sich das Menü in einem angezeigten Fenster befindet.
Die folgenden Gruppen von Flags können nicht zusammen verwendet werden:
- MF_BYCOMMAND und MF_BYPOSITION
- MF_DISABLED, MF_ENABLED und MF_GRAYED
- MF_BITMAP, MF_STRING, MF_OWNERDRAW und MF_SEPARATOR
- MF_MENUBARBREAK und MF_MENUBREAK
- MF_CHECKED und MF_UNCHECKED
Hinweis
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
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h (windows.h einschließen) |
Bibliothek | User32.lib |
DLL | User32.dll |
APIs | ext-ms-win-ntuser-menu-l1-1-0 (eingeführt in Windows 8) |
Weitere Informationen
Konzept
Andere Ressourcen
Referenz