我想创建一个顶级窗口(即非WS_CHILD),并使其具有透明度。但是,我不希望它只是一个简单的遮罩,其中给定像素要么完全透明,要么完全不透明。我也不希望整个窗口都具有某些alpha级别。相反,我希望窗口基本上是完全透明的,并绘制带有alpha通道的位图,以便位图与任何在其后面的窗口混合。比如,假设有一个太阳爆发的图像,其中图像自己的alpha从中心向外从不透明到完全透明混合。
我找到了两种方法,都接近我想要做的事情,但并不完全符合我的要求。使用区域,我可以剪切出一个完全透明的部分。使用分层窗口,我也可以做类似的事情(甚至可以使整个窗口稍微透明,但这根本不是我想要的)。我已经研究了其他样式,例如WS_EX_TRANSPARENT和WS_EX_COMPOSITE,但没有结果。
我可以让这种效果在子窗口上正常工作,因为它们在其父窗口的区域内与其父窗口混合。但是,使其类似地适用于顶级窗口仍然困扰着我。
我知道这是可以做到的,因为有人向我保证他们在其他程序中看到了它。我觉得我只是没有完全理解关于绘制窗口的一些简单内容。