Qt如何获取外部当前具有输入焦点控件的窗口句柄或者当前活动窗口的句柄? 80C

我想用Qt的键盘事件做一个外挂式的输入法,但是没有办法获得活动窗口的句柄,这样就无法发送消息,所以知道如何在Qt中获取外部的活动窗口的句柄或者是具有输入焦点的窗口的句柄,求大佬们解答~!!

c++

2个回答

windows平台的话,用getforgroundwindow得到窗口,用GetFocus得到文本框

同时,最关键的,你自己输入法的窗体要设置
WS_EX_TOOLWINDOW
WS_EX_NOACTIVATE
让它本身不获得焦点

qq_39063889
Qt菜鸟 用GetFocus是得到文本框吗?不应该是获得具有键盘焦点的窗口的句柄吗?(菜鸟的质问)
4 个月之前 回复
qq_39466976
qq_39466976 回复caozhy: 大佬你可不可以上点具体的代码,这样看感觉好抽象
8 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_39466976: 那你可以subclass窗口,然后直接处理 wm_keypress
8 个月之前 回复
qq_39466976
qq_39466976 回复caozhy: 刚才我试了一下,没有焦点无法使用键盘事件
8 个月之前 回复
qq_39466976
qq_39466976 大佬,用什么函数设置WS_EX_TOOLWINDOW和WS_EX_NOACTIVATE呢?
8 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_39466976: 不是,是悬浮的
8 个月之前 回复
qq_39466976
qq_39466976 如果·输入法窗口不获得焦点的话,不就无法使用键盘事件了吗?
8 个月之前 回复

QApplication

QWidget * activeWindow()
QWidgetList allWidgets()
QWidget * focusWidget()

用这几个看看。窗口句柄是不可移植的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!