У меня возникла следующая проблема в приложении WinForms.
Я пытаюсь реализовать горячие клавиши, и мне нужно обрабатывать сообщения клавиш, когда элемент управления активен, независимо от того, находится ли фокус на текстовом поле в этом элементе управления и т. Д.
Переопределение ProcessCmdKey прекрасно работает для этого и делает именно то, что я хочу, с одним исключением:
Если пользователь нажимает клавишу и удерживает ее нажатой, ProcessCmdKey продолжает вызывать события WM_KEYDOWN.
Однако я хочу добиться того, чтобы пользователь снова отпустил кнопку до того, как сработает другое действие горячей клавиши (поэтому, если кто-то сидит на клавиатуре, это не вызовет непрерывных событий горячей клавиши).
Однако я не могу найти, где перехватывать события WM_KEYUP, поэтому я могу установить флаг, если он должен снова обрабатывать сообщения ProcessCmdKey?
Кто-нибудь может помочь здесь?
Спасибо
Tom