Меню не владельцем меню можно задать меню мнемоник, вставив символ подчеркивания рядом с символа в строке меню. Это позволяет пользователю выбрать в меню, введите alt и назначенным символом меню. В меню, рисуемого владельцем нельзя указать меню назначенным таким образом. Вместо этого ваше приложение должно обработать WM_MENUCHAR для предоставления владельцем меню с меню мнемоник.
WM_MENUCHAR сообщение отправляется, когда пользователь вводит меню мнемоник, который не соответствует ни одному из предопределенных мнемоник текущего меню. Значение, содержащееся в wParam определяет символ ASCII, который соответствует ключу, нажата с клавишей alt . Младшее слово lParam указывает тип выбранного меню и может быть на следующих значений:
Старшее слово lParam содержит дескриптор меню текущего меню. Окно с владельцем меню может обрабатывать WM_MENUCHAR следующим:
случай WM_MENUCHAR:
nIndex = определяет индекс элемента меню, чтобы выбрать из
символ, который был введен и ручкой в текущий
меню.
возвращение MAKELRESULT (nIndex, 2)
Два в старшее слово возвращаемого значения сообщает системе младшее слово возвращаемого значения содержит отсчитываемый с нуля индекс элемента меню, чтобы выбрать.
Следующие константы (определенный начиная с Windows 95 и Windows NT версии 4.0) соответствуют возможных возвращаемых значений из WM_MENUCHAR сообщения:
| Постоянный | Значение | Значение |
|---|---|---|
| MNC_IGNORE | 0 | Система должна отказаться от символа пользователь нажал и создать короткий звуковой сигнал на системный динамик. |
| MNC_CLOSE | 1 | Система должна закрыть активного меню. |
| MNC_EXECUTE | 2 | Система должна выбрать элемент, указанный в младшее слово возвращаемого значения. Окно-владелец получает сообщения WM_COMMAND. |
| MNC_SELECT | 3 | Система должна выбрать элемент, указанный в младшее слово возвращаемого значения. |