Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Отправляется в окно владельца меню, когда пользователь выбирает пункт меню.
#define WM_MENUSELECT 0x011F
Параметры
-
wParam
-
Слово с низким порядком указывает элемент меню или индекс подменю. Если выбранный элемент является элементом команды, этот параметр содержит идентификатор элемента меню. Если выбранный элемент открывает раскрывающееся меню или подменю, этот параметр содержит индекс раскрывающегося меню или подменю в главном меню, а параметр lParam содержит дескриптор в главном меню; используйте функцию GetSubMenu , чтобы получить дескриптор меню в раскрывающемся меню или подменю.
Слово высокого порядка задает один или несколько флагов меню. Этот параметр может быть одним или несколькими из следующих значений.
Ценность Meaning - MF_BITMAP
- 0x000000004L
Элемент отображает растровое изображение. - MF_CHECKED
- 0x000000008L
Проверяется элемент. - MF_DISABLED
- 0x000000002L
Элемент отключен. - MF_GRAYED
- 0x000000001L
Элемент серый. - MF_HILITE
- 0x00000080L
Элемент выделен. - MF_MOUSESELECT
- 0x00008000L
Элемент выбран с помощью мыши. - MF_OWNERDRAW
- 0x00000100L
Элемент является элементом, нарисованным владельцем. - MF_POPUP
- 0x00000010L
Элемент открывает раскрывающееся меню или подменю. - MF_SYSMENU
- 0x00002000L
Элемент содержится в меню окна. Параметр lParam содержит дескриптор меню, связанное с сообщением. -
lParam
-
Дескриптор главного меню.
Возвращаемое значение
Если приложение обрабатывает это сообщение, оно должно возвращать ноль.
Замечания
Это сообщение отправляется в окно владельца меню, когда пользователь выбирает пункт меню в открытом меню, как правило, с помощью мыши или навигации по клавиатуре. Если меню закрыто, это сообщение не отправляется, когда пользователь перемещает указатель мыши на элемент меню верхнего уровня. Это сообщение отправляется только после открытия меню пользователем, щелкнув элемент меню верхнего уровня или нажав клавиши ALT .
Это важно
Когда пользователь щелкает элемент меню или нажимает клавишу ВВОД , чтобы вызвать выбранный пункт меню, в окне отправляется сообщение WM_COMMAND или WM_MENUCOMMAND в зависимости от значения элемента dwStyle структуры MENUINFO в меню. Используйте эти сообщения для выполнения действия при вызове выбранной команды.
Если слово с высоким порядком wParam содержит 0xFFFF, а параметр lParam содержит значение NULL, система закрыла меню.
Не используйте значение -1 для слова wParam с высоким порядком, так как это значение указано как (UINT) HIWORD(wParam). Несмотря на то, что 0xFFFF могут быть интерпретированы как -1 в подписанных контекстах, если значение 0xFFFF, оно будет интерпретировано как 0x0000FFFF, а не -1 из-за приведения к UINT.
Например, этот код проверяет наличие 0xFFFF, а не -1:
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;
}
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент |
Windows 2000 Профессиональный [только классические приложения] |
| Минимальный поддерживаемый сервер |
Windows 2000 Server [только классические приложения] |
| Header |
|
См. также
-
Справочные материалы
-
Концептуальный