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