如何禁用Alt键的正常行为?

Al *_*epp 8 c c++ keyboard winapi

通常,Alt键会在Windows中打开菜单.

我需要禁用它,因为我的应用程序需要Alt键.(它是旧计算机的模拟器,所以我需要模仿它的行为.)我在纯Windows API中编写它,所以我希望必须有一些消息被发送,需要被禁用,丢弃或忽略.

Alt + Tab没有问题,以及其他系统键和组合键,我只需要在打开菜单时忽略Alt.

(我的应用程序使用DirectInput来读取键,因此它运行良好.我只需要禁用使用Alt键打开菜单的功能.我将使用鼠标打开菜单.)

Mik*_*wan 12

如何检查WM_SYSCOMMAND,当wParam是SC_KEYMENU,返回0?

更新/确切解决方案:

if(wParam==SC_KEYMENU && (lParam>>16)<=0) return 0;
return DefWindowProc(hwnd, message, wParam, lParam);
Run Code Online (Sandbox Code Playgroud)

说明:如果lParam>>16为肯定,则菜单由鼠标激活,当它为零或为负时,菜单由Alt或Alt +激活.