问题描述
- 透明窗体:D3D渲染技术 透明3D桌面c++应用 主题对于GDI颜色的影响
-
混合节构:
m_stBlend.BlendOp = AC_SRC_OVER;
m_stBlend.BlendFlags = 0;
m_stBlend.AlphaFormat = AC_SRC_ALPHA;
m_stBlend.SourceConstantAlpha = 0xFF;
// 设置窗体格式
SetWindowLong(m_hWnd, GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);更新方式:
UpdateLayeredWindow(ULW_ALPHA);在没开了Win7以更新版本主题时窗口是想要的效果
如果关闭主题或是在Win7以下版本中窗口的透明颜色就会出现杂色,效果是这样的注:更新窗口的几种方式和混合节构的各种方式均已试过,都不行,
出现这种情况,我个人猜测的原因是我的图形DC像素计算方式是以更高的字节形式而转换到系统支持的字节形式时,系统的计算方法没有去判断,上面的图形是基本D3D的渲染到目标得出来的,不管用任何方式,只要能透明就行,
解决方案
求助大神帮忙一起研究一下,谢谢了
解决方案二:
是不是有其他不兼容的窗口风格?参考下我的这篇博客:http://blog.csdn.net/zuishikonghuan/article/details/48054203 ,已经在 XP、Win7(Areo/Basic)、Win8.1、Win10以及WinPE上测试,均无任何问题,只在Linux下的wine上运行时出现了无法关闭的问题
时间: 2024-10-27 23:40:54