如何禁用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 +激活。