我想要一个WS_POPUP
边缘模糊的窗口,如下图:
有什么建议么?我一直在研究分层窗口,但仍然不知道如何在边缘实现完全透明的像素。也许我可以在整个窗口上放置一个位图,但是如何使背景透明?如果我有一个带有位图的分层窗口,则完整的位图将变得透明。
我想要一个WS_POPUP
边缘模糊的窗口,如下图:
有什么建议么?我一直在研究分层窗口,但仍然不知道如何在边缘实现完全透明的像素。也许我可以在整个窗口上放置一个位图,但是如何使背景透明?如果我有一个带有位图的分层窗口,则完整的位图将变得透明。
您需要使用分层窗口(具有扩展窗口样式集的窗口)并使用该函数WS_EX_LAYERED
提供带有 Alpha 通道的 32 位位图。UpdateLayeredWindow
此功能的文档在这里:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms633556 (v=vs.85).aspx
基本上,您不再使用标准的绘制循环,WM_PAINT
而只是为窗口的全部内容提供完整的 32 位位图。请注意,API 使用预乘 alpha,这意味着位图中的红色、绿色和蓝色通道值必须与 alpha 通道值进行预乘(此处解释:http: //msdn.microsoft.com/en-us/library/ windows/桌面/dd183393(v=vs.85).aspx )。