我想用透明度创建顶层窗口(即非WS_CHILD)。然而,我不希望它是一个简单的面具,其中一个给定的像素是完全透明或完全不透明的。而且我不希望整个窗口对它有一些alpha级别。相反,我希望这个窗口基本上是完全透明的,用一个alpha通道绘制一个位图,这样位图就可以和它后面的任何窗口混合在一起。图片,比如说,一个阳光照射,图像自己的alpha从不透明到从中心向外完全透明的混合。透明顶层窗口
我发现两种方法,都得到接近我想要做的,但并不完全。使用区域,我可以剪出一个完全透明的部分。使用分层窗口,我也可以做类似的事情(甚至可以使整个窗口稍微透明,但这不是我想要的)。我研究过其他样式,例如WS_EX_TRANSPARENT和WS_EX_COMPOSITE,但无济于事。
我能得到这样的效果上下工夫子窗口就好了,因为它们与他们的父母的区域内其父窗口交融。让顶级窗口以类似的方式工作仍然无法实现。
我知道这是可以做到,因为人们都向我保证,他们已经看到了它在其他程序中。我觉得我只是没有完全理解关于绘画窗口的一些简单的东西。
我的问题是我不理解如何正确使用UpdateLayeredWindow,所以没想到我需要它。关键是设置混合函数并为位图提供正确的直流。所以,得到它的工作,谢谢! – 2009-02-17 17:10:52