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.
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.
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 |
---|---|
|
Neben dem Element wird ein Häkchen gesetzt (nur für Dropdownmenüs, Untermenüs und Kontextmenüs). |
|
Das Element ist deaktiviert. |
|
Das Element ist deaktiviert und abgeblendet. |
|
Das Element ist hervorgehoben. |
|
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. |
|
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. |
|
Das Element wird vom Besitzer gezeichnet. |
|
Das Menüelement ist ein Untermenü. |
|
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
Referenz