WM_COMMAND-Nachricht

Wird gesendet, wenn der bzw. die Benutzer*in ein Befehlselement aus einem Menü auswählt, wenn ein Steuerelement eine Benachrichtigung an das übergeordnete Fenster sendet oder wenn eine Tastenkombination übersetzt wird.

#define WM_COMMAND                      0x0111

Parameter

wParam

Eine Beschreibung dieses Parameters finden Sie unter „Hinweise“.

lParam

Eine Beschreibung dieses Parameters finden Sie unter „Hinweise“.

Rückgabewert

Wenn eine Anwendung diese Meldung verarbeitet, sollte sie 0 (null) zurückgeben.

Beispiel

BOOL AboutDlg (
    HWND hDlg, 
    UINT message, 
    WPARAM wParam, 
    LPARAM lParam)
{
    BOOL bRet = FALSE;
    
    switch (message) 
    {
        case WM_INITDIALOG:
            bRet = TRUE;
            break;

        case WM_COMMAND:
            if (wParam == IDOK ||
                wParam == IDCANCEL) 
            {
                EndDialog(hDlg, TRUE);
                bRet = TRUE;
            }
            break;
    }

    return bRet;
}

Beispiel aus Klassische Windows-Beispiele auf GitHub.

Hinweise

Die Verwendung der Parameter wParam und lParam wird hier zusammengefasst.

Nachrichtenquelle wParam (höherwertiges Wort) wParam (niederwertiges Wort) lParam
Menü 0 Menübezeichner (IDM_*) 0
Accelerator 1 Bezeichner der Tastenkombination (IDM_*) 0
Control Vom Steuerelement definierter Benachrichtigungscode Steuerelementbezeichner Handle für das Fenster des Steuerelements

Wenn eine Anwendung eine Menütrennlinie aktiviert, sendet das System eine WM_COMMAND-Nachricht mit dem niederwertigen Wort des wParam-Parameters, der auf 0 (null) festgelegt ist, wenn der bzw. die Benutzer*in die Trennlinie auswählt.

Wenn ein Menü mit einem MENUINFO.dwStyle-Wert von MNS_NOTIFYBYPOS definiert ist, wird WM_MENUCOMMAND anstelle von WM_COMMAND gesendet.

Schnellinfos

Tastenkombinationen, die Elemente aus dem Fenstermenü auswählen, werden in WM_SYSCOMMAND-Nachrichten übersetzt.

Wenn eine Tastenkombination auftritt, die einem Menüelement entspricht, wenn das Fenster, das das Menü besitzt, minimiert wird, wird keine WM_COMMAND-Nachricht gesendet. Wenn jedoch eine Tastenkombination auftritt, die nicht mit einem der Elemente im Menü des Fensters oder im Fenstermenü übereinstimmt, wird eine WM_COMMAND-Nachricht gesendet, auch wenn das Fenster minimiert ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Winuser.h (einschließlich Windows.h)

Siehe auch

Referenz

HIWORD

LOWORD

Konzept

Menüs