Sky_Nothing 2015-10-23 07:35 采纳率: 0%
浏览 2644

透明窗体: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的渲染到目标得出来的,不管用任何方式,只要能透明就行,

  • 写回答

2条回答

  • Sky_Nothing 2015-10-23 07:38
    关注

    求助大神帮忙一起研究一下,谢谢了

    评论

报告相同问题?