我们将透明应用程序窗口放置在另一个进程的窗口之上。我们的窗口包含一些子控件。我们创建一个 WS_EX_LAYERED 窗口,使用 colorkey 来选择透明度。主窗口是完全透明的,因此它仅用作子控件的容器。
这在 没有 Aero 的 XP 和 Vista 上运行良好。但是,在带有 Aero 的 Vista 上,点击不会穿过透明区域。我们能做什么?
使用 WS_EX_TRANSPARENT 失败了,这当然会使我们自己的控件无法操作。
我考虑过隐藏父窗口 (WS_SHOWWINDOW),但我相当确定这将隐藏所有子窗口,并且 AFAIK 将窗口大小调整为最小大小,CLIPCHILDREN 和 CLIPSIBLINGS 的任何组合都会以类似的方式失败。 ..
感谢您的帮助。
最佳答案
另一种选择是使用窗口区域而不是 WS_EX_LAYERED
关于winapi - WS_EX_LAYERED 色键 - Vista 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1887955/