Как отключить нормальное поведение клавиши Alt? - PullRequest
8 голосов
/ 09 марта 2012

Обычно клавиша Alt открывает меню в Windows.

Мне нужно, чтобы это было отключено, потому что мне нужна клавиша Alt для моего приложения.(Это эмулятор старого компьютера, поэтому мне нужно имитировать его поведение.) Я пишу его в чистом Windows API, поэтому я ожидаю, что должно быть какое-то сообщение, которое отправляется и должно быть отключено, отброшено или проигнорировано.

Alt + Tab не проблема, как и другие системные клавиши и комбинации клавиш, мне просто нужно игнорировать Alt при открытии меню.

(мое приложение использует DirectInput для чтения клавиш, поэтомуработает хорошо. Мне просто нужно отключить функциональность, которая открывает меню с помощью клавиши Alt. Я открою меню с помощью мыши.)

1 Ответ

12 голосов
/ 09 марта 2012

Как насчет проверки на 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 + что-либо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...