首页 新闻 搜索 专区 学院

Qt弹窗后光标不能返回原窗体,需要点一下原窗体才能继续操作,求解决方案...

0
悬赏园豆:100 [已解决问题] 解决于 2015-05-27 09:28

我的窗体用的是QDialog,Dialog中嵌入了个widget, 在widget的鼠标点击事件中弹出一个QMessageBox窗体,box关闭后窗体能得到焦点,但是需要鼠标点击一下后才能在继续操作。 不弹窗没有问题。
setFouces avticeWindows \ raise等方法都用过了。 比较挫的解决方案是模拟鼠标点击,也用了。 

希望有知道的大神不吝赐教呀。。。。


Qt版本:5.1.1 开发环境VS2010, 操作系统:win7

tqcool的主页 tqcool | 初学一级 | 园豆:114
提问于:2015-05-15 20:22
< >
分享
最佳答案
1

可以借助Windows API来完成

这有个参考资料

http://blog.sina.com.cn/s/blog_4c0706560102vhkv.html

收获园豆:100
LiuKaiFa | 小虾三级 |园豆:1491 | 2015-05-16 13:30

用了这个方式,每次弹窗后使用该方法设置窗体,结果死在AttachThreadInput(GetWindowThreadProcessId(GetForegroundWindow(), NULL),GetCurrentThreadId(), true) ;里了

tqcool | 园豆:114 (初学一级) | 2015-05-18 11:19
其他回答(1)
0

最后还是用模拟点击解决了~~   没有更好的方案了。

PostMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(1, 1));
PostMessage(hwnd, WM_LBUTTONUP, MK_LBUTTON, MAKELONG(1, 1));

tqcool | 园豆:114 (初学一级) | 2015-05-27 09:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册