1

我的框架的边框是白色的(0xffffffffe)。我的框架内部是黑色的(0xff000000)。我想让边框半透明(alpha 值为 100),内部不透明。显然,我曾经SetLayeredWindowAttributes这样做过,但它不起作用。

这种变化:SetLayeredWindowAttributes(RGB(0xxff, 0xff, 0xfe), 100, LWA_COLORKEY)将边框设置为 100 的 alpha,但内部完全透明。

这种变化:SetLayeredWindowAttributes(RGB(0xxff, 0xff, 0xfe), 100, LWA_COLORKEY | LWA_ALPHA)将内部设置为 100 的 alpha,但将边框设置为完全透明。

如何使内部不透明而边框透明?在这种情况下,我无法使用多个顶级窗口来实现效果。

4

1 回答 1

1

而不是SetLayeredWindowAttributes,使用UpdateLayeredWindow. 您可以将包括任何透明度在内的整个帧预渲染到 32 位位图上,将其选择到 DC 中并将其传递给UpdateLayeredWindow.

于 2012-09-03T22:10:52.100 回答