通常,Alt 键会打开 Windows 中的菜单。
我需要禁用此功能,因为我的应用程序需要 Alt 键。 (它是旧计算机的模拟器,所以我需要模仿它的行为。)我用纯Windows API编写它,所以我预计一定有一些消息被发送并且需要被禁用、丢弃或忽略。
Alt+Tab 没问题,还有其他系统键和组合键,我只需要在打开菜单时忽略 Alt 即可。
(我的应用程序使用 DirectInput 读取按键,因此效果很好。我只需要禁用使用 Alt 键打开菜单的功能。我将使用鼠标打开菜单。)
怎样检查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+something 激活菜单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)