У меня есть два 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, но это кажется действительно расточительным. Я чувствую, что это решенная проблема.