在无效的Syskeypress上禁用MessageBeep

kay*_*kun 6 c++ winapi

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

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

dyp*_*dyp 7

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

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

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

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

我用过MNC_CLOSE << 16.