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

时间:2012-03-09 00:44:31

标签: c++ c winapi keyboard

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

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

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

(我的应用程序使用DirectInput读取键,因此效果很好。我只需要禁用使用Alt键打开菜单的功能。我将使用鼠标打开菜单。)

1 个答案:

答案 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 +激活。