在无效的Syskeypress上禁用MessageBeep

时间:2010-09-07 19:55:09

标签: c++ winapi

简单的问题,如果用户按下Alt + Whatever并且没有与之关联的热键,程序通常会生成MessageBeep。我可以调用哪些API函数来避免这种情况?

处理WM_KEYDOWN,WM_KEYUP,WM_SYSKEYDOWN和WM_SYSKEYUP都返回0;在我的主要WndProc上不起作用。

2 个答案:

答案 0 :(得分:7)

WM_MENUCHAR应该是你想要的。 MSDN搜索是你的朋友(>消息蜂鸣声快捷键<或>消息蜂鸣声加速器<)。

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

编辑:似乎只适用于活动菜单。
编辑2:像魅力一样工作。注意MSDN:

  

处理此消息的应用程序应返回返回值的高位字中的以下值之一。

我使用了MNC_CLOSE << 16

答案 1 :(得分:1)

我认为这是一个系统设置。控制面板+声音+声音选项卡。不确定是哪一个,我关掉了很多。也许是“程序错误”。

相关问题