我正在使用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中的颜色值不匹配?
答案 0 :(得分:2)
你应该避免在LWA_COLORKEY中使用0xff,0xff,0xff(白色)。任何其他值都应该没问题(例如0xff,0xff,0xfe)。
为了更好地控制分层窗口,我建议您考虑使用UpdateLayeredWindowIndirect。我写了一篇文章,详细描述了它如何与GDI和Direct2D一起使用。