使用ActiveX控件在浏览器窗口容器中,我如何检测用户更改选项卡远离ActiveX Controt

StackOverflow https://stackoverflow.com/questions/2338071

我有一个ActiveX控件,该控件放置在IE浏览器容器中。该控件创建另一个对话框窗口,该窗口具有WS_POPUP和WS_LAYERED属性,以便能够使用SetLayeredWindowAttributes(...)函数来完成控件之上的颜色键合透明度和Alpha混合。

因为WS_LAYERER属性不能与WS_CHILD属性结合使用,因此窗口可见性的管理不是自动的。我需要能够检测何时不再可见ActiveX控件(即更改或最小化浏览器选项卡),这样我就可以更改覆盖窗口的可见性。

我试图使用一些现有的窗口消息(WM_)来确定此更改,但在更改IE浏览器选项卡时没有看到它们触发。有人知道当这些可见性变化发生时捕获的最佳方法吗?

有帮助吗?

解决方案

如果您没有看到 WM_SHOWWINDOW 通知,然后您的窗户被覆盖而不是隐藏。没有Windows消息可以告诉您何时涵盖了ActiveX控件。您需要从浏览器中查找通知。

或提出不使用WS_POPUP窗口的解决方案。也许你可以使用 Alphablend 进行自己的颜色键合,而不是依靠SetLayeredWindowAttributes的隐含字母行为。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top