开发者

Disable MessageBeep on Invalid Syskeypress

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

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜