微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

顶层窗口最小化时,popup窗口无法接收焦点

我创build了一个popup窗口( WS_POPUP , WS_EX_TOPMOST , WS_EX_TOOLWINDOW ),它可以在单击时获得焦点(通过调用WM_LBUTTONDOWN处理程序中的SetFocus )。 所有的工作,直到我最小化主应用程序窗口(popup仍然可见) – 现在当我点击popup窗口,它立即失去了重点。 为什么会发生这样的情况,不应该popup的窗口与主窗口完全无关,因为它不是一个孩子或什么东西?

更新:这似乎与WS_POPUP有关。 尝试在主应用程序窗口最小化时单击一个窗口,会闪烁其任务栏图标,并立即杀死焦点。

使用dek Web Cam的API?

点击聚焦forms丢失

窗口消息:WM_CREATE和WM_NCCREATE不同?

OpenCV countour / convexHull错误

使用与Windows和Python 2.6.1的猎豹模板系统(名称映射问题)

点击窗口的目的是激活应用程序。 如果一个窗口是可见的但不是拥有的(就像你的情况那样),那么当窗口被点击时,Windows不能激活该应用程序。 这是你所看到的(预期的)行为。

如果有什么特别的东西你想要完成,那么你仍然应该通过消息循环看到那个窗口的消息。 键盘消息只被发送到焦点窗口。 鼠标消息被发送到已捕获鼠标的窗口(如果有的话)或鼠标指针下的最上面的窗口(通过命中测试发现)是否具有焦点。 如果需要,可以将各种其他消息发送到窗口(例如绘画)。

如果你想让你的弹出式窗口获得焦点,那么它必须一个可以被激活的顶级父窗口。 通常的解决方案是创建一个不可见的顶层窗口(1像素或屏幕外)作为其父项。

发现一个有趣的解决方案,恰好也解决了我的其他问题(如果弹出窗口显示在全屏游戏上,单击它将导致任务栏出现) – 我使窗口透明( WS_EX_TRANSPARENT ),并通过系统控制来处理鼠标和键盘 -宽吊钩。 唯一的缺点是我必须让鼠标移动通过,因为阻塞它会导致光标停止(因此,我不能改变光标,因为我的弹出窗口后面的应用程序只会改变它)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐