Udostępnij przez


komunikat WM_COMMAND

Wysyłane, gdy użytkownik wywołuje element polecenia z menu, gdy kontrolka wysyła komunikat powiadomienia do okna nadrzędnego lub gdy naciśnięcie akceleratora jest tłumaczone.

#define WM_COMMAND                      0x0111

Parametry

wParam

Aby uzyskać opis tego parametru, zobacz Uwagi.

lParam

Aby uzyskać opis tego parametru, zobacz Uwagi.

Wartość zwracana

Jeśli aplikacja przetwarza ten komunikat, powinna zwrócić zero.

Example

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;
}

Przykład pobrany z klasycznych przykładów systemu Windows w witrynie GitHub.

Uwagi

Poniżej przedstawiono podsumowanie parametrów wParam i lParam .

Źródło komunikatów wParam (wysoki wyraz) wParam (niski wyraz) lParam
Menu 0 Identyfikator menu (IDM_*) 0
Akcelerator 1 Identyfikator akceleratora (IDM_*) 0
Kontrola Kod powiadomienia zdefiniowanego przez kontrolkę Identyfikator kontrolki Obsługa w oknie sterowania

W większości przypadków jest to komunikat do nasłuchiwania, gdy użytkownik wywołuje polecenie w menu. Jeśli jednak menu jest zdefiniowane z wartością MENUINFO.dwStyleMNS_NOTIFYBYPOS, WM_MENUCOMMAND jest wysyłany zamiast WM_COMMAND.

Jeśli aplikacja włączy separator menu, system wysyła komunikat WM_COMMAND z małym wyrazem parametru wParam ustawionym na zero, gdy użytkownik wybierze separator.

Akceleratory

Naciśnięcia akceleratora, które wybierają elementy z menu okna, są tłumaczone na komunikaty WM_SYSCOMMAND .

Jeśli naciśnięcie akceleratora odpowiada elementowi menu, gdy okno będące właścicielem menu zostanie zminimalizowane, nie zostanie wysłany żaden komunikat WM_COMMAND . Jeśli jednak występuje naciśnięcie akceleratora, które nie pasuje do żadnego z elementów w menu okna lub w menu okna, zostanie wysłany komunikat WM_COMMAND , nawet jeśli okno zostanie zminimalizowane.

Requirements

Wymaganie Wartość
Minimalny obsługiwany klient
Windows 2000 Professional [tylko aplikacje klasyczne]
Minimalny obsługiwany serwer
Windows 2000 Server [tylko aplikacje klasyczne]
Header
Winuser.h (uwzględnij windows.h)

Zobacz także

Referencja

HIWORD

LOWORD

Koncepcje

Menu