C ++:如何仅在父窗口上使用SetLayeredWindowAttributes()?

时间:2012-10-25 14:26:38

标签: c++ windows winapi

  

可能重复:
  Transparent window containing opaque text and buttons

我正在尝试使用 C ++ 操作现有窗口。

基本上,我要做的是将父窗口设置为透明,首先将其窗口样式设置为WS_EX_LAYERED,然后使用具有正确值的SetLayeredWindowAttributes()

问题在于,这也会将子窗口设置为透明,这将使整个程序透明(显然是一个问题)。

有什么想法吗?

编辑图片展示了问题:enter image description here

正如您所看到的,我将任务栏窗口样式设置为WS_EX_LAYERED,但是例如窗口MSTaskSwWClass(具有正在运行的应用程序图标的窗口)也会受到影响。

EDIT2 尝试使用完全相同的结果UpdateLayeredWindow()

1 个答案:

答案 0 :(得分:0)

截至http://msdn.microsoft.com/en-us/library/windows/desktop/ms633540%28v=vs.85%29.aspx

Windows 8 :顶级窗口和子窗口支持WS_EX_LAYERED样式。  以前的Windows版本仅支持顶级窗口的WS_EX_LAYERED

所以它不会将分层属性设置为' child'窗户。

向我们展示屏幕截图和/或代码。