GetMenuState-Funktion (winuser.h)

Ruft die Menüflags ab, die dem angegebenen Menüelement zugeordnet sind. Wenn das Menüelement ein Untermenü öffnet, gibt diese Funktion auch die Anzahl der Elemente im Untermenü zurück.

Hinweis Die GetMenuState-Funktion wurde von GetMenuItemInfo abgelöst. Sie können GetMenuState jedoch weiterhin verwenden, wenn Sie keines der erweiterten Features von GetMenuItemInfo benötigen.
 

Syntax

UINT GetMenuState(
  [in] HMENU hMenu,
  [in] UINT  uId,
  [in] UINT  uFlags
);

Parameter

[in] hMenu

Typ: HMENU

Ein Handle für das Menü, das das Menüelement enthält, dessen Flags abgerufen werden sollen.

[in] uId

Typ: UINT

Das Menüelement, für das die Menüflags abgerufen werden sollen, wie durch den uFlags-Parameter bestimmt.

[in] uFlags

Typ: UINT

Gibt an, wie der uId-Parameter interpretiert wird. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
MF_BYCOMMAND
0x00000000L
Gibt an, dass der uId-Parameter den Bezeichner des Menüelements angibt. Das MF_BYCOMMAND-Flag ist die Standardeinstellung, wenn weder das MF_BYCOMMAND - noch MF_BYPOSITION-Flag angegeben ist.
MF_BYPOSITION
0x00000400L
Gibt an, dass der uId-Parameter die nullbasierte relative Position des Menüelements angibt.

Rückgabewert

Typ: UINT

Wenn das angegebene Element nicht vorhanden ist, ist der Rückgabewert -1.

Wenn das Menüelement ein Untermenü öffnet, enthält das Byte mit niedriger Reihenfolge des Rückgabewerts die Menüflags, die dem Element zugeordnet sind, und das Byte mit hoher Reihenfolge enthält die Anzahl der Elemente im Vom Element geöffneten Untermenü.

Andernfalls ist der Rückgabewert eine Maske (bitweises OR) der Menüflags. Im Folgenden sind die Menüflags aufgeführt, die dem Menüelement zugeordnet sind.

Rückgabecode/-wert BESCHREIBUNG
MF_CHECKED
0x00000008L
Neben dem Element wird ein Häkchen gesetzt (nur für Dropdownmenüs, Untermenüs und Kontextmenüs).
MF_DISABLED
0x00000002L
Das Element ist deaktiviert.
MF_GRAYED
0x00000001L
Das Element ist deaktiviert und abgeblendet.
MF_HILITE
0x00000080L
Das Element ist hervorgehoben.
MF_MENUBARBREAK
0x00000020L
Dies entspricht dem Flag MF_MENUBREAK , mit Ausnahme von Dropdownmenüs, Untermenüs und Kontextmenüs, bei denen die neue Spalte durch eine vertikale Linie von der alten Spalte getrennt wird.
MF_MENUBREAK
0x00000040L
Das Element wird in einer neuen Zeile (für Menüleisten) oder in einer neuen Spalte (für Dropdownmenüs, Untermenüs und Kontextmenüs) platziert, ohne Spalten voneinander zu trennen.
MF_OWNERDRAW
0x00000100L
Das Element wird vom Besitzer gezeichnet.
MF_POPUP
0x00000010L
Das Menüelement ist ein Untermenü.
MF_SEPARATOR
0x00000800L
Es gibt eine horizontale Trennlinie (nur für Dropdownmenüs, Untermenüs und Kontextmenüs).

Hinweise

Es ist möglich, ein Element auf einen Flagwert von MF_ENABLED, MF_STRING, MF_UNCHECKED oder MF_UNHILITE zu testen. Da diese Werte jedoch null sind, müssen Sie einen Ausdruck verwenden, um sie zu testen.

Flag Ausdruck, der für das Flag getestet werden soll
MF_ENABLED ! (Flag&(MF_DISABLED | MF_GRAYED))
MF_STRING ! (Flag&(MF_BITMAP | MF_OWNERDRAW))
MF_UNCHECKED ! (Flag&MF_CHECKED)
MF_UNHILITE ! (Flag&HILITE)
 

Beispiele

Ein Beispiel finden Sie unter Simulieren von Kontrollkästchen in einem Menü.

Anforderungen

Anforderung Wert
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-2 (eingeführt in Windows 10, Version 10.0.10240)

Siehe auch

Konzept

GetMenu

GetMenuItemCount

GetMenuItemID

GetMenuItemInfo

Menüs

Referenz