开发者

Disable MessageBeep on Invalid Syskeypress

开发者 https://www.devze.com 2023-01-15 18:33 出处:网络
Simple problem, normally a program will produce a MessageBeep if the user presses Alt+Whatever and there\'s no hotkey associated with it. What API functions can I call to avoid this?

Simple problem, normally a program will produce a MessageBeep if the user presses Alt+Whatever and there's no hotkey associated with it. What API functions can I call to avoid this?

Handl开发者_运维技巧ing WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP all with return 0; on my main WndProc does not work.


WM_MENUCHAR should be what your looking for. MSDN search is you friend (>message beep shortcut< or >message beep accelerator<).

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

Edit: seems to be only for active menus.
Edit 2: works like a charm. note MSDN:

An application that processes this message should return one of the following values in the high-order word of the return value.

I've used MNC_CLOSE << 16.


I think this is a system setting. Control Panel + Sounds + Sounds tab. Not sure which one does it, I have a lot of them turned off. Maybe "Program Error".

0

精彩评论

暂无评论...
验证码 换一张
取 消