ModifyMenuA-Funktion (winuser.h)
Ändert ein vorhandenes Menüelement. Diese Funktion wird verwendet, um den Inhalt, die Darstellung und das Verhalten des Menüelements anzugeben.
Syntax
BOOL ModifyMenuA(
[in] HMENU hMnu,
[in] UINT uPosition,
[in] UINT uFlags,
[in] UINT_PTR uIDNewItem,
[in, optional] LPCSTR lpNewItem
);
Parameter
[in] hMnu
Typ: HMENU
Ein Handle zum Ändern des Menüs.
[in] uPosition
Typ: UINT-
Das zu ändernde Menüelement, 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 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 lpNewItem--Parameter enthält ein Handle für die Bitmap. |
|
Platziert ein Häkchen neben dem Element. Wenn Ihre Anwendung Häkchenbitmaps bereitstellt (siehe SetMenuItemBitmaps-Funktion), zeigt dieses Flag eine ausgewählte Bitmap neben dem Menüelement an. |
|
Deaktiviert das Menüelement, sodass es nicht ausgewählt werden kann, aber dieses Flag graut es nicht. |
|
Aktiviert das Menüelement, sodass es ausgewählt und aus dem grauen Zustand wiederhergestellt werden kann. |
|
Deaktiviert das Menüelement und graut es, sodass es nicht ausgewählt werden kann. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Gibt an, dass das Menüelement eine Textzeichenfolge ist; der parameter lpNewItem ist ein Zeiger auf die Zeichenfolge. |
|
Platziert kein Häkchen neben dem Element (Standardeinstellung). Wenn Ihre Anwendung Häkchenbitmaps bereitstellt (siehe SetMenuItemBitmaps-Funktion), zeigt dieses Flag eine eindeutige Bitmap neben dem Menüelement an. |
[in] uIDNewItem
Typ: UINT_PTR
Der Bezeichner des geänderten Menüelements oder, wenn der uFlags Parameter den MF_POPUP Flag festgelegt hat, ein Handle für das Dropdownmenü oder untermenü.
[in, optional] lpNewItem
Typ: LPCTSTR-
Der Inhalt des geänderten Menüelements. Die Interpretation dieses Parameters hängt davon ab, ob der parameter uFlags das flag MF_BITMAP, MF_OWNERDRAWoder MF_STRING enthält.
Wert | Bedeutung |
---|---|
|
Ein Bitmaphandle. |
|
Ein von einer Anwendung bereitgestellter Wert, der verwendet wird, um zusätzliche Daten im Zusammenhang mit dem Menüelement zu verwalten. Der Wert befindet sich im elementData Element der Struktur, auf das durch den lParam Parameter des WM_MEASUREITEM oder WM_DRAWITEM Nachrichten verwiesen wird, die gesendet werden, wenn das Menüelement erstellt oder die Darstellung aktualisiert wird. |
|
Ein Zeiger auf eine mit Null beendete Zeichenfolge (Standardeinstellung). |
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
Wenn ModifyMenu ein Menüelement ersetzt, das ein Dropdownmenü oder untermenü öffnet, zerstört die Funktion das alte Dropdownmenü oder untermenü und gibt den darin verwendeten Speicher frei.
Damit Tastenkombinationen mit Bitmap- oder vom Besitzer gezeichneten Menüelementen verwendet werden können, muss der Besitzer des Menüs die WM_MENUCHAR Nachricht verarbeiten. Weitere Informationen finden Sie unter Owner-Drawn Menüs und der WM_MENUCHAR Nachrichten-.
Die Anwendung muss die DrawMenuBar- Funktion aufrufen, wenn sich ein Menü ändert, ob sich das Menü in einem angezeigten Fenster befindet. Um die Attribute vorhandener Menüelemente zu ändern, ist es wesentlich schneller, die CheckMenuItem- und EnableMenuItem--Funktionen zu verwenden.
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
Beispiele
Ein Beispiel finden Sie unter Festlegen von Schriftarten für Menu-Item Textzeichenfolgen.
Anmerkung
Der winuser.h-Header definiert ModifyMenu 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-3 (eingeführt in Windows 10, Version 10.0.14393) |
Siehe auch
Konzeptionelle
Referenz-