如何禁用Alt键的正常行为?
通常,Alt键会在Windows中打开菜单。
我需要禁用它,因为我的应用程序需要Alt键。 (它是旧计算机的模拟器,所以我需要模仿它的行为。)我在纯Windows API中编写它,所以我希望必须有一些消息发送,需要被禁用,丢弃或忽略。
Alt + Tab没有问题,以及其他系统键和组合键,我只需要在打开菜单时忽略Alt。
(我的应用程序使用DirectInput读取键,因此它运行良好。我只需要禁用使用Alt键打开菜单的function。我将使用鼠标打开菜单。)
如何检查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 +激活。