Freigeben über


WM_MENUSELECT Nachricht

Wird an das Besitzerfenster eines Menüs gesendet, wenn der Benutzer ein Menüelement auswählt.

#define WM_MENUSELECT                   0x011F

Die Parameter

wParam

Das Wort mit niedriger Reihenfolge gibt das Menüelement oder den Untermenüindex an. Wenn das ausgewählte Element ein Befehlselement ist, enthält dieser Parameter den Bezeichner des Menüelements. Wenn das ausgewählte Element ein Dropdownmenü oder untermenü öffnet, enthält dieser Parameter den Index des Dropdownmenüs oder Untermenüs im Hauptmenü, und der lParam-Parameter enthält das Handle für das Hauptmenü; verwenden Sie die GetSubMenu-Funktion , um das Menühandle zum Dropdownmenü oder Untermenü abzurufen.

Das Wort mit hoher Reihenfolge gibt ein oder mehrere Menükennzeichnungen an. Dieser Parameter kann einen oder mehrere der folgenden Werte sein.

Wert Bedeutung
MF_BITMAP
0x00000004L
Das Element zeigt eine Bitmap an.
MF_CHECKED
0x00000008L
Element ist aktiviert.
MF_DISABLED
0x000000002L
Element ist deaktiviert.
MF_GRAYED
0x00000001L
Das Element ist grau dargestellt.
MF_HILITE
0x00000080L
Das Element ist hervorgehoben.
MF_MOUSESELECT
0x00008000L
Das Element wird mit der Maus ausgewählt.
MF_OWNERDRAW
0x00000100L
Element ist ein vom Besitzer gezeichnetes Element.
MF_POPUP
0x000000010L
Das Element öffnet ein Dropdownmenü oder untermenü.
MF_SYSMENU
0x00002000L
Das Element ist im Fenstermenü enthalten. Der lParam-Parameter enthält ein Handle für das Menü, das der Nachricht zugeordnet ist.

lParam

Ein Handle zum Hauptmenü.

Rückgabewert

Wenn eine Anwendung diese Meldung verarbeitet, sollte sie Null zurückgeben.

Bemerkungen

Diese Nachricht wird an das Besitzerfenster eines Menüs gesendet, wenn der Benutzer ein Menüelement in einem geöffneten Menü auswählt, in der Regel durch Maus- oder Tastaturnavigation. Wenn das Menü geschlossen ist, wird diese Nachricht nicht gesendet, wenn der Benutzer die Maus über ein Menüelement der obersten Ebene bewegt. Diese Nachricht wird erst gesendet, nachdem das Menü geöffnet wurde, indem der Benutzer auf ein Menüelement der obersten Ebene klickt oder die ALT-TASTE drückt.

Von Bedeutung

Wenn ein Benutzer auf ein Menüelement klickt oder die EINGABETASTE drückt, um ein ausgewähltes Menüelement aufzurufen, wird abhängig vom Wert des dwStyle-Elements der MENUINFO-Struktur für das Menü eine WM_COMMAND oder WM_MENUCOMMAND Nachricht an das Fenster gesendet. Verwenden Sie diese Nachrichten, um eine Aktion auszuführen, wenn der ausgewählte Befehl aufgerufen wird.

Wenn das Hochreihenfolgewort von wParam 0xFFFF enthält und der lParam-ParameterNULL enthält, hat das System das Menü geschlossen.

Verwenden Sie nicht den Wert -1 für das Wort mit hoher Reihenfolge von wParam, da dieser Wert als (UINT) HIWORD(wParam) angegeben wird. Obwohl 0xFFFF in signierten Kontexten als -1 interpretiert werden können, wird der Wert 0xFFFF aufgrund der Umwandlung in einen UINT als 0x0000FFFF und nicht als -1 interpretiert.

In diesem Code wird z. B. auf 0xFFFF und nicht auf -1 überprüft:

case WM_MENUSELECT:
{
    UINT menuItem = LOWORD(wParam);
    UINT flags = HIWORD(wParam);
    HMENU hMenu = (HMENU)lParam;

    // Check for 0xFFFF, not -1.
    if (flags == 0xFFFF && hMenu == NULL) {
        // No menu item selected (menu closed).
        // ...
    }
    break;
}

Anforderungen

Anforderung Wert
Mindest unterstützter Client
Windows 2000 Professional [nur Desktop-Apps]
Unterstützter Mindestserver
Windows 2000 Server [nur Desktop-Apps]
Header
Winuser.h (enthalten Windows.h)

Siehe auch

Referenz

GetSubMenu

HIWORD

LOWORD

Konzeptionell

Zugriffstasten