透明窗体:D3D渲染技术 透明3D桌面c++应用 主题对于GDI颜色的影响

问题描述

透明窗体: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

透明窗体:D3D渲染技术 透明3D桌面c++应用 主题对于GDI颜色的影响的相关文章

透明窗体的又一实现

前面拜读过本站无数高手的许多好文章,受益非浅,首先向各位大侠致敬!今天编程偶有小得,不敢独享,特拿出来与各位共享,希望对某些朋友有些许帮助. 透明窗体的问题相信大家已经很熟悉了,前面的几期在线杂志也有几篇详尽的教程,总结一下就是通过SetWindowRgn这个函数来实现,具体的裁切框用CRgn来生成,比较简单的 象圆,椭圆,圆角窗口等CRgn类都提供了相应的生成方法,我们如果想根据自己的图片来生成裁切框前面的朋友提到的方法是首先生成一个矩形裁切框,然后扫描图片,根据象素点的颜色与掩码颜色的匹配与

xp系统下半透明窗体(即A.EXE)放置在(B.EXE)用opengl绘制的客户区中出现闪烁

问题描述 xp系统下半透明窗体(即A.EXE)放置在(B.EXE)用opengl绘制的客户区中出现闪烁 请问在xp系统下,用c++实现的半透明窗体(即A.EXE)放置在(B.EXE)用opengl绘制的客户区中,为什么会出现闪烁的问题?是什么原因?有没有解决的办法 解决方案 opengl是直接写屏的,所以有冲突,除非关掉显卡的视频加速.

微软获得3D桌面界面技术专利

北京时间5月8日下午消息,微软近日获得一项3D桌面技术专利,可能对微软未来的Windows系统产生重大影响. 该项专利名为"提供3D任务空间的计算机界面的方法和工具" (method and apparatus for providing a three- dimensional task gallery computer interface),该界面旨在帮助用户更好地管理多任务操作. 根据专利描述,这些多任务可以在一个带有地板.墙壁和天花板的3D环境下进行,用户可以在这个"

c++-visual studio空项目做出的exe文件如何实现透明窗体?

问题描述 visual studio空项目做出的exe文件如何实现透明窗体? 如题,建了一个空项目,现在只有源文件cpp,编译出的控制台窗口如何实现透明窗体? 程序使用c++写的 上网查了很久,基本都是建立在mfc上的 希望有具体的步骤 解决方案 只有windows窗口才可以,控制台窗口不行

C# 透明窗体制作实现方法比较分析_C#教程

制作透明窗体办法有好几种,各有优缺点. 我们先来看看C#本身提供的办法 1:通过设置窗体的 TransparencyKey实现 例:窗体中的白色会变成透明 复制代码 代码如下: this.BackColor =Color.White; this.TransparencyKey = Color.White; 2:通过设置窗体的 Opacity 实现 例:窗体的透明度为50% 复制代码 代码如下: this.Opacity = 0.5; 为了更好说明问题,我们先看一个实例. (1)新建一个winfo

微软技术透明中心将源代码向中国公开,这回是要干啥

微软透明技术中心是专门用来向中国政府部门和亚洲各国政府"裸呈"其源代码的.2014年6月,微软在美国华盛顿州雷德蒙德总部建立了第一家"微软技术透明中心".微软目前在全球已建立5个技术透明中心,分布于美国.比利时.中国.新加坡和巴西. 亚洲各国政府的IT专家可以再得到授权后审查微软的产品源代码,对产品进行详细的测试和分析,以检测其产品不含隐藏的后门程序,不会被用作危害中国的事情."这也意味着,微软成为全球第一家将源代码向政府及相关机构公开的科技公司"

微软技术透明中心落地北京

微软全球执行副总裁沈向洋博士在19日开幕的国家网络安全周上宣布,微软在全球设立的第三家"技术透明中心"在北京正式启用.目前,全球除微软外没有任何一家科技公司用这种方法把源代码公开给政府及相关机构. 沈向洋在接受科技日报记者采访时说:"20多年前当互联网出现时,人们将其视作另外一个空间,似乎和我们生活的现实世界是分离的.现在我们认识到,人们可以通过虚拟的数字世界来改变和影响现实世界,尤为关键的是,人们不会使用不信任的技术.不会使用不信任的终端.不会使用不信任的云计算.毫无疑问,

微软技术透明中心落地北京,允许相关机构查看源代码

近日,在武汉举行的国家网络安全宣传周首日活动上,微软公司宣布"微软技术透明中心"在北京建成并正式启用."微软技术透明中心"是微软 "政府安全计划"(GSP)的一个重要组成部分.微软"政府安全计划"于2003年推出,旨在提高政府对于微软产品和服务的信任.北京"微软技术透明中心"为中国用户进一步了解微软产品及服务的安全性和可靠性提供了平台,是微软继美国和欧洲之后最新建立的一个"微软技术透明中心&quo

SpaceTop 3D桌面:把手“伸进”电脑屏幕

该系统仍处于早期,但体现了计算机界面未来可能的发展. 计算机正在从Mac发展至iPad,而未来有可能出现3D桌面.美国麻省理工学院研究生Lee Jinha本周展示了一款3D桌面环境SpaceTop. SpaceTop 3D桌面:把手"伸进"电脑屏幕 去年,Lee Jinha展示的一款名为ZeroN的产品吸引了外界注意.ZeroN是一个漂浮的3D球,能记录并播放被用户移动的过程.根据在微软应用科学部门实习的经验,以及在麻省理工学院的学习,Lee Jinha开发出了新的数字3D环境Spac