Как передать события клавиатуры из одного окна в другое - PullRequest
1 голос
/ 12 марта 2020

У меня есть два windows, каждый с HWND другого.

Окно A содержит приложение и логи интерфейса пользователя c и имеет некоторые элементы интерфейса.

Окно B также имеет элементы пользовательского интерфейса, но я хочу, чтобы он действовал как терминал. Прямо сейчас окно B просто отображает другой вид состояния окна A и не имеет интерфейса пользователя или логики приложения c.

Когда окно B находится в фокусе, я хочу, чтобы его данные с клавиатуры были перенаправлены в окно A, поэтому он может обрабатывать входную логику c, вносить изменения в пользовательский интерфейс, которые затем отражаются в окне B.

Код, управляющий окном B, - это C ++, свободно следуя этому руководству: https://docs.microsoft.com/en-us/windows/win32/learnwin32/creating-a-window. Окно A - это его собственный зверь (Unity Engine, автономная сборка).

Я рассмотрел SendInput () или PostMessage (), но поскольку окно A не в фокусе, оно никогда не получает его.

Я всегда могу вернуться к простому перехвату каждого события клавиатуры в окне B и использованию пользовательских сообщений logi c для отправки этих событий в окно A, но это кажется действительно расточительным. Я чувствую, что это решенная проблема.

...