使用ActiveX控件在浏览器窗口容器中,我如何检测用户更改选项卡远离ActiveX Controt
-
22-09-2019 - |
题
我有一个ActiveX控件,该控件放置在IE浏览器容器中。该控件创建另一个对话框窗口,该窗口具有WS_POPUP和WS_LAYERED属性,以便能够使用SetLayeredWindowAttributes(...)函数来完成控件之上的颜色键合透明度和Alpha混合。
因为WS_LAYERER属性不能与WS_CHILD属性结合使用,因此窗口可见性的管理不是自动的。我需要能够检测何时不再可见ActiveX控件(即更改或最小化浏览器选项卡),这样我就可以更改覆盖窗口的可见性。
我试图使用一些现有的窗口消息(WM_)来确定此更改,但在更改IE浏览器选项卡时没有看到它们触发。有人知道当这些可见性变化发生时捕获的最佳方法吗?
解决方案
如果您没有看到 WM_SHOWWINDOW
通知,然后您的窗户被覆盖而不是隐藏。没有Windows消息可以告诉您何时涵盖了ActiveX控件。您需要从浏览器中查找通知。
或提出不使用WS_POPUP窗口的解决方案。也许你可以使用 Alphablend 进行自己的颜色键合,而不是依靠SetLayeredWindowAttributes的隐含字母行为。
不隶属于 StackOverflow