简单的问题,如果用户按下Alt + Whatever并且没有与之关联的热键,程序通常会生成MessageBeep。我可以调用哪些API函数来避免这种情况?
处理WM_KEYDOWN,WM_KEYUP,WM_SYSKEYDOWN和WM_SYSKEYUP都返回0;在我的主要WndProc上不起作用。
答案 0 :(得分:7)
WM_MENUCHAR应该是你想要的。 MSDN搜索是你的朋友(>消息蜂鸣声快捷键<或>消息蜂鸣声加速器<)。
http://msdn.microsoft.com/en-us/library/ms646349(VS.85).aspx
编辑:似乎只适用于活动菜单。
编辑2:像魅力一样工作。注意MSDN:
处理此消息的应用程序应返回返回值的高位字中的以下值之一。
我使用了MNC_CLOSE << 16
。
答案 1 :(得分:1)
我认为这是一个系统设置。控制面板+声音+声音选项卡。不确定是哪一个,我关掉了很多。也许是“程序错误”。