【发布时间】:2012-10-25 14:26:38
【问题描述】:
我正在尝试使用 C++ 操作现有窗口。
基本上,我要做的是通过首先将其窗口样式设置为WS_EX_LAYERED,然后使用具有正确值的SetLayeredWindowAttributes(),将父窗口设置为透明。
问题在于,这会将子窗口也设置为透明,这将使整个程序透明(显然是个问题)。
有什么想法吗?
EDIT 展示问题的图片:
如您所见,我将任务栏窗口样式设置为WS_EX_LAYERED,但例如窗口MSTaskSwWClass(具有正在运行的应用程序图标的窗口)也会受到影响。
EDIT2尝试UpdateLayeredWindow(),结果完全相同。
【问题讨论】:
-
即使问题非常相似,我认为答案也不会相同。首先,我没有自己创建窗口,其次我没有使用任何位图或 GDI(+)。另外,我尝试使用 UpdateLayeredWindow(),但它没有改变任何东西(可能是因为我不明白如何使用它..)
-
您要求的不透明度和透明效果也将始终应用于任何子窗口。避免这种情况的唯一方法是在该父窗口之上放置一个顶级窗口。
-
...在这种情况下我该怎么做..?