Клавиатура сообщений Windows проблемы потока и сомнения - PullRequest
1 голос
/ 16 сентября 2009

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

Проблема в том, что он использует сторонний OCX для части своего отображения, и в фокусе он ловит некоторые важные сообщения WM_KEYDOWN, такие как Ctrl + C, Ctrl + V и т. Д. Я пытался поймать сообщение WM_KEYDOWN через WndProc, но сообщение не распространяется, поэтому я предполагаю, что сообщения клавиатуры идут из внутреннего контейнера во внешний, не так ли?

Сообщения WM_KEYUP могут быть перехвачены, но я бы предпочел иметь возможность перехватить некоторые из этих сообщений в событии KeyDown. Я знаю, что мог бы сделать несколько низкоуровневых хуков, но я бы хотел избежать этого обходного пути.

Хорошо, если сообщение WM_KEYDOWN отправляется из OCX в его контейнер верхнего уровня, я думаю, мне придется обработать эти комбинации клавиш в событии KeyUp.

1 Ответ

0 голосов
/ 21 сентября 2009

Когда ваше приложение находится в фокусе, вы можете зарегистрировать ключевые ключи как горячие клавиши (RegisterHotkey API) и затем отменить регистрацию, как только ваше приложение не в фокусе.

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