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


Сообщение WM_MENUSELECT

Сообщение WM_MENUSELECT отправляется окну владельца меню, когда пользователь выбирает пункт меню.

Синтаксис

WM_MENUSELECT
uItem = (UINT) LOWORD(wParam);// пункт меню или индекс подменю
fuFlags = (UINT) HIWORD(wParam);// флажки меню
hmenu = (HMENU) lParam;// дескриптор меню, по которому щелкнули мышью

Параметры
uItem
Значение младшего слова wParam. Если выбранный пункт - командный пункт, этот параметр содержит идентификатор пункта меню. Если выбранный пункт открывает выпрыгивающее меню или подменю, этот параметр содержит индекс меню выпрыгивающего меню или подменю, в главном меню, а параметр hMenu тогда содержит дескриптор главного (по которому щелкнули) меню; используйте функцию GetSubMenu, чтобы получить дескриптор меню выпрыгивающего меню или подменю.
fuFlags
Значение старшего слова wParam. Определяет один или несколько флажков меню. Этот параметр может быть комбинацией следующих значений:

  • MF_BITMAP - Пункт отображает точечный рисунок.
  • MF_CHECKED - Пункт проверяется.
  • MF_DISABLED - Пункт блокируется.
  • MF_GRAYED - Пункт становится недоступным.
  • MF_HILITE - Пункт выделяется.
  • MF_MOUSESELECT - Пункт выбирается при помощи мыши.
  • MF_OWNERDRAW - Пункт нарисованный пользователем.
  • MF_POPUP - Пункт открывает выскакивающее меню или подменю.
  • MF_SYSMENU - Пункт содержится в меню окна (известное также как Системное или Управляющее меню). Параметр hmenu идентифицирует меню окна, связанное с сообщением.

hmenu
Значение lParam. Идентифицирует меню, по которому щелкнули мышью.

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

Замечания
Если параметр fuFlags содержит 0xFFFF, а параметр hmenu содержит ПУСТО (NULL), значит Windows закрыла меню.
Не используйте для fuFlags значение –(минус)1. Это не делается потому, что fuFlags определяется как (UINT) HIWORD (wParam). Если бы HIWORD (wParam) было 0xFFFF, fuFlags (из-за приведения UINT) станет 0x0000FFFF, а не –(минус)1.

Смотри также
GetSubMenu

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

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

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