Обработка сообщений C MFC

#c #mfc

#c #mfc

Вопрос:

Итак, я создаю приложение MFC, которое обрабатывает несколько разных сообщений и будет отображать разные выходные данные в зависимости от того, какое сообщение было обработано. Итак, прямо сейчас у меня есть тот, который обрабатывает WM_KEYDOWN сообщение и отображает вывод этого сообщения. Теперь у меня также есть один, который обрабатывает WM_RBUTTONDOWN , и я хочу, чтобы он запустил игру Brick Breaker, которую я создаю. Проблема, с которой я сталкиваюсь, заключается в том, что после ввода WM_RBUTTONDOWN я хочу отключить определенные клавиши, чтобы я мог управлять веслом без вызова WM_KEYDOWN .

TL: DR Как отключить определенные ключи из WM_KEYDOWN in MFC.

Ответ №1:

Вы можете переопределить PreTranslateMessage просмотр и обход сообщения до того, как MFC выполнит преобразование карты сообщений.

Комментарии:

1. Итак, что действительно нужно было сделать, так это переопределить PreTranslateMessage , а затем добавить некоторые ускорители в класс для виртуальных клавиш для клавиш со стрелками влево и вправо.

Ответ №2:

Вам не нужно отключать ключи в вашем приложении. Когда другая программа имеет фокус, все входные данные должны поступать в эту программу.

Ответ №3:

Вы захотите переслать интересующие вас ключи в код, который управляет вашим объектом.

Ответ №4:

Вам не нужно отключать ключи. Это просто зависит от вашего кода, чтобы решить, обрабатывать или нет ключ в зависимости от состояния приложения.