如何在Windows上自动将焦点还原到已启动的应用程序

时间:2014-10-27 12:18:18

标签: windows qt winapi

我开发了一个全屏应用程序,它可以连接到第三方/客户端应用程序并由其启动。问题是客户端应用程序在启动我的应用程序后很快得到了关注,结果是虽然我的应用程序是全屏的,并且设置为顶部,但是它没有接收键盘输入,因此用户必须单击它使其成为焦点,这会导致糟糕的用户体验。

如何在客户端获取后将焦点恢复到我的应用程序?

如果重要,我的应用程序是用C ++编写的,并且有一个QT UI。

2 个答案:

答案 0 :(得分:1)

不是答案,而是我的应用程序没有输入焦点的原因。我将让Charles Petzold解释(来自Programming Windows 5ed,第213页)

  

接收特定键盘事件的窗口是具有输入焦点的窗口。输入焦点的概念与活动窗口的概念密切相关。具有输入焦点的窗口是活动窗口或活动窗口的后代窗口 - 即活动窗口的子窗口,或活动窗口的子窗口的子窗口,等等。

我的Qt应用程序不是由活动窗口产生的,因此没有输入焦点。因此,解决方案是将我的应用程序作用于活动窗口。不幸的是,如果可能的话,这在Qt中并不简单。

答案 1 :(得分:0)