SetLayeredWindowAttributes 在 Windows 7 上不起作用

发布于 2024-09-27 17:35:06 字数 457 浏览 2 评论 0原文

我正在使用 SetLayeredWindowAttributer 使分层窗口的特定颜色透明。

这在 Windows XP、VISTA 上运行良好。但当我在 Windows 7 上使用相同的方法时,它不起作用。

SetLayeredWindowAttributes(hWnd, RGB(0xff,0xff,0xff), 0, LWA_COLORKEY);

当我使用 LWA_ALPHA 时,它也可以工作。 问题是我无法在 Windows 7 中使特定颜色透明。

以下语句适用于 Windows 7

SetLayeredWindowAttributes(hWnd,RGB(0xff,0xff,0xff), 100, LWA_ALPHA);

渲染的颜色值是否可能与 SetLayeredWindowAttributes 中的颜色值不匹配?

I am using SetLayeredWindowAttributer to make a particular color of layered window transparent.

This works fine on Windows XP,VISTA . But when I use the same on Windows 7 its not working.

SetLayeredWindowAttributes(hWnd, RGB(0xff,0xff,0xff), 0, LWA_COLORKEY);

When I use LWA_ALPHA then also it works.
Problem is that I am not able to make a particular color transparent in Windows 7.

The following statement works on Windows 7

SetLayeredWindowAttributes(hWnd,RGB(0xff,0xff,0xff), 100, LWA_ALPHA);

Is it possible that the rendered color values not matching the color value in SetLayeredWindowAttributes?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明明#如月 2024-10-04 17:35:06

您应该避免将 0xff、0xff、0xff(白色)与 LWA_COLORKEY 一起使用。任何其他值都应该没问题(例如0xff、0xff、0xfe)。

为了更好地控制分层窗口,我建议您考虑使用 UpdateLayeredWindowIndirect。我写了一篇文章,详细描述了如何将它与 GDI 和 Direct2D 一起使用。

http://msdn.microsoft.com/en-us/magazine/ee819134.aspx

You should avoid using 0xff,0xff,0xff (white) with LWA_COLORKEY. Any other value should be fine (e.g. 0xff,0xff,0xfe).

For more control over your layered window I suggest you consider using UpdateLayeredWindowIndirect. I wrote an article that describes in detail how it can be used with both GDI and Direct2D.

http://msdn.microsoft.com/en-us/magazine/ee819134.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文