通常,Alt键会在Windows中打开菜单。
我需要将其禁用,因为我的应用程序需要Alt键。 (它是旧计算机的模拟器,所以我需要模仿它的行为。)我在纯Windows API中编写它,所以我希望必须有一些消息被发送,需要被禁用,丢弃或忽略。
Alt + Tab没问题,还有其他系统键和组合键,我只需要在打开菜单时忽略Alt。
(我的应用程序使用DirectInput读取键,因此效果很好。我只需要禁用使用Alt键打开菜单的功能。我将使用鼠标打开菜单。)
答案 0 :(得分:12)
如何检查WM_SYSCOMMAND
,当wParam为SC_KEYMENU
时,返回0?
更新/确切解决方案:
if(wParam==SC_KEYMENU && (lParam>>16)<=0) return 0;
return DefWindowProc(hwnd, message, wParam, lParam);
描述:如果lParam>>16
为正,则菜单由鼠标激活,当它为零或为负时,菜单由Alt或Alt +激活。