сообщение 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 [только классические приложения] |
Верхний колонтитул |
|