сообщение WM_COMMAND

Отправляется, когда пользователь выбирает элемент команды из меню, когда элемент управления отправляет уведомление в родительское окно или при переводе нажатия клавиш акселератора.

#define WM_COMMAND                      0x0111

Параметры

wParam

Описание этого параметра см. в разделе "Примечания".

lParam

Описание этого параметра см. в разделе "Примечания".

Возвращаемое значение

Если приложение обрабатывает это сообщение, оно должно возвращать ноль.

Пример

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

Пример, взятый из классических примеров Windows на сайте GitHub.

Замечания

Здесь приведены сведения об использовании параметров wParam и lParam.

Источник сообщений wParam (высокое слово) wParam (низкое слово) lParam
Меню 0 Идентификатор меню (IDM_*) 0
Accelerator 1 Идентификатор акселератора (IDM_*) 0
Элемент управления Код уведомления, определенный элементом управления Идентификатор элемента управления Дескриптор в окне управления

Если приложение включает разделитель меню, система отправляет сообщение WM_COMMAND с низким словом параметра wParam , которое имеет значение нулю, когда пользователь выбирает разделитель.

Если меню определено со значением MENUINFO.dwStyle MNS_NOTIFYBYPOS, WM_MENUCOMMAND отправляется вместо WM_COMMAND.

Ускорители

Нажатия клавиш акселератора, которые выбирают элементы из меню окна, превратятся в сообщения WM_SYSCOMMAND.

Если нажатие клавиш акселератора соответствует элементу меню, когда окно, владеющее меню, свернуто, сообщение WM_COMMAND не отправляется. Однако если нажатие клавиш акселератора не соответствует ни одному из элементов в меню окна или в меню окна, отправляется сообщение WM_COMMAND, даже если окно свернуто.

Requirements

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Верхний колонтитул
Winuser.h (включая Windows.h)

См. также

Ссылка

HIWORD

LOWORD

Концептуальной

Меню