Отключить MessageBeep на Invalid Syskeypress - PullRequest
6 голосов
/ 07 сентября 2010

Простая проблема, обычно программа выдаст MessageBeep, если пользователь нажмет Alt + Wh независимо и с ним не будет связана ни одна горячая клавиша. Какие функции API можно вызвать, чтобы избежать этого?

Обработка WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN и WM_SYSKEYUP - все с возвратом 0; на моем основном WndProc не работает.

Ответы [ 2 ]

7 голосов
/ 08 сентября 2010

WM_MENUCHAR должен быть тем, что вы ищете.MSDN поиск - ваш друг (> ярлык звукового сигнала сообщения <или> ускоритель звукового сигнала сообщения <).</p>

http://msdn.microsoft.com/en-us/library/ms646349(VS.85).aspx

Редактировать: кажется, только для активных меню.
Редактировать 2: работает как шарм.note MSDN:

Приложение, обрабатывающее это сообщение, должно вернуть одно из следующих значений в старшее слово 1014 * возвращаемого значения.

Я использовал MNC_CLOSE << 16.

1 голос
/ 08 сентября 2010

Я думаю, что это системная настройка.Панель управления + Звуки + вкладка Звуки.Не уверен, какой из них это делает, у меня их много выключеноМожет быть, «Ошибка программы».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...