Убедитесь, что все ключевые события отправлены в главное окно? - PullRequest
0 голосов
/ 15 августа 2010

Есть ли способ гарантировать, что все события WM_KEYDOWN попадут в мое главное окно, независимо от того, у кого есть фокус? это в основном для глобальных вещей, таких как Delete, и горячих клавиш, таких как CTRL A и CTRL S. Проблема в том, что если другой элемент управления имеет фокус, все они перестают работать. Может быть, есть лучший способ сделать это, чем поместить их в событие WM_KEYDOWN моего главного окна?

Спасибо

1 Ответ

0 голосов
/ 15 августа 2010

Да, вы делаете это в цикле сообщений. В точном месте, где традиционный цикл сообщений имеет вызов TranslateAccelerator (). Который выполняет ту же самую операцию, отлавливая сочетания клавиш и превращая их в сообщения WM_COMMAND. Типичная библиотека классов реализует это с помощью метода «PreProcessMessage».

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