2014-10-27 15 views
0

Я разработал полноэкранное приложение, которое подключается и запускается сторонним/клиентским приложением. Проблема заключается в том, что клиентское приложение сразу же начинает фокусироваться сразу после запуска моего приложения, в результате чего, несмотря на то, что мое приложение полноэкранное и установлено, что оно сверху, оно не получает ввод на клавиатуре, так как пользователь должен нажать на него чтобы привлечь внимание, что приводит к плохой работе с пользователями.Как автоматически восстановить фокус на запущенном приложении в Windows

Как восстановить фокус для моего приложения после того, как клиент его приобретет?

Если это имеет значение, мое приложение написано на C++ и имеет интерфейс QT.

+0

Интересно, смогли ли вы решить вашу проблему? – Robert

ответ

1

Не совсем ответ, но причина почему мое приложение не имеет фокуса ввода. Я позволю Чарльзу Петцольду объяснить (из программирования Windows 5ed, pg 213)

Окно, которое получает конкретное событие клавиатуры, представляет собой окно с фокусом ввода. Концепция фокуса ввода тесно связана с концепцией активного окна. Окно с фокусом ввода - это либо активное окно, либо окно потомка активного окна, то есть дочерний элемент активного окна, или дочерний элемент дочернего элемента активного окна и т. Д.

Приложение My Qt не создано, которое порождено активным окном и поэтому не имеет фокуса ввода. Таким образом, решением было бы родительское мое приложение в активном окне. К сожалению, это не прямолинейно в Qt, если это вообще возможно.

Смежные вопросы