Win32 API. Быстрые клавиши
Страница 25. Сообщение WM_MENUCHAR


Сообщение WM_MENUCHAR

Сообщение WM_MENUCHAR отправляется тогда, когда меню активизируется, а пользователь, нажимает клавишу, которая не соответствует какому-либо символу или клавише - ускорителю. Это сообщение отправляется окну, которое владеет меню.

Синтаксис

WM_MENUCHAR
chUser = (char) LOWORD(wParam);// символ ASCII
fuFlag = (UINT) HIWORD(wParam);// флажок меню
hmenu = (HMENU) lParam;// дескриптор меню

Параметры
chUser
Значение младшего слова wParam. Определяет символ ASCII, который соответствует клавише, нажатой пользователем.
fuFlag
Значение старшего слова wParam. Определяет тип активного меню. Этот параметр может быть одним из следующих значений:

  • MF_POPUP - Выскакивающее меню, подменю или контекстное меню
  • MF_SYSMENU - Меню окна (системное меню (System Menu) или меню Управления (Control menu)

hmenu
Значение lParam. Идентифицирует активное меню.

Возвращаемые значения
Прикладная программа, которая обрабатывает это сообщение, должна возвратить одно из следующих величин в старшем слове возвращаемого значения:

  • 0 - Сообщает Windows, что оперативная система должна сбросить символ нажатый пользователем и создать короткий гудок в системном динамике.
  • 1 - Сообщает Windows, что оперативная система должна закрыть активное меню.
  • 2 - Сообщает Windows, что младшее слово величины возвращаемого значения устанавливает отсчитываемое от нуля взаимное положение пункта меню. Этот элемент выбирается Windows.

Замечания
Младшее слово игнорируется, если старшее слово содержит 0 или 1. Прикладная программа должна обработать это сообщение, когда клавиша - ускоритель используется, чтобы выбрать пункт меню, который отображает точечный рисунок.

Размещение и совместимость WM_MENUCHAR

Windows NTДа 
Win95Да
Win32sДа
Импортируемая библиотека-
Заголовочный файлwinuser.h
UnicodeНет
Замечания по платформеНе имеется

 
Следующая статья »