用C++品尝Vista美味:界面的毛玻璃效果

简介

本文将演示在基于Windows Vista的普通Windows应用程序及对话框程序中,如何利用C++来生成Aero毛玻璃效果,此处使用的是Beta 2版本的Vista及Windows SDK,也许在后续的版本中,一些API在细节上会有所变化。另外,文中没有使用MFC,全部例子用WTL 7.5生成,其可在http://wtl.sourceforge.net/下载得到,虽然此处使用的是Visual C++ 2003,但Visual C++ 2005也类似。

Aero主题及毛玻璃效果,是随同Vista"桌面窗口管理(DWM)"而来的新特性,也是微软市场推广的一个重心,在应用程序中集成毛玻璃效果,当打开Aero主题时,程序看上去会显得非常与众不同--很酷,对吧。

Aero主题中的毛玻璃效果

当以Aero为主题时,Vista会根据计算机显卡进行判断是否开启毛玻璃效果,此时桌面由DWM进行绘制,而DWM使用一个composition进程来渲染桌面,其会在顶层窗口的非客户区自动使用Aero主题元素(有点类似于Windows XP)。话又说回来,也不是总会添加这些毛玻璃效果的,如果计算机运行于"电池模式",或用户决定关闭透明效果,那么非客户区就不会有毛玻璃效果了,如果在控制面板的可视效果中打开了透明玻璃效果,那非客户区看上去就像下图这样:

请留意,记事本的边框呈现绿色调,这是墙纸透过来的颜色,并且也可以透过标题栏看到桌面的一些图标。

我们在编写代码的时候,关键只须留意composition是否打开,而不是设置了什么毛玻璃效果,因为DWM会处理毛玻璃效果绘制的部分。

时间: 2024-12-22 09:14:27

用C++品尝Vista美味:界面的毛玻璃效果的相关文章

Fireworks制作Vista毛玻璃效果

今天用Fireworks制作类似vista毛玻璃的效果,局部效果图: 1.建立画布,导入背景素材 2.绘制圆角矩形,垂直线性渐变填充 3.绘制矩形高光部分,复制矩形,原位粘贴,并删除下半部分,进行垂直线性渐变,调整透明度 4.开始制作毛玻璃效果,线性渐变绘制一个圆形,羽化10px 5.添加杂点8px 6.选择先前绘制矩形,在刚才画的圆形上点击反键-编辑-粘贴为蒙版 7.得到如下效果 8.同上步骤再绘制一个矩形.放射性填充.羽化及添加杂点步骤 9.在msn小人这块区域绘制一个椭圆行,使用绸缎填充,

旧版iOS设计界面被迫重新加入扁平和毛玻璃效果

硅谷网讯 对于设计业界来说,iOS7的发布是一个大事件.早在几个月前测试版放出时,就在设计师社区引发了一场讨论.众多基于旧版iOS设计风格而制作的界面,被迫重新设计加入扁平和毛玻璃效果.这两天新系统已经正式推出,一些应用新版界面已经同时上架. 在苹果的桌面系统Mac OS X上面,很多在Windows下自成一派的应用,都要经过重新设计,以尽力符合苹果的界面标准.一些应用看起来就好像是从另一个星球来的一样. 针对微软Windows Phone和Windows 8Modern界面而设计的应用也是如此

如何在Fireworks制作Vista毛玻璃效果技巧

  局部效果图: 1.建立画布,导入背景素材 2.绘制圆角矩形,垂直线性渐变填充 3.绘制矩形高光部分,复制矩形,原位粘贴,并删除下半部分,进行垂直线性渐变,调整透明度 4.开始制作毛玻璃效果,线性渐变绘制一个圆形,羽化10px 5.添加杂点8px 6.选择先前绘制矩形,在刚才画的圆形上点击反键-编辑-粘贴为蒙版 7.得到如下效果 8.同上步骤再绘制一个矩形.放射性填充.羽化及添加杂点步骤 9.在msn小人这块区域绘制一个椭圆行,使用绸缎填充,按如上步骤得到下图效果. 10.得到效果. 11.最

iOS毛玻璃效果的实现及图片模糊效果的三种方法_IOS

App设计时往往会用到一些模糊效果或者毛玻璃效果,iOS目前已提供一些模糊API可以让我们方便是使用. 话说苹果在iOS7.0之后,很多系统界面都使用了毛玻璃效果,增加了界面的美观性,比如下图的通知中心界面; 但是其iOS7.0的SDK并没有提供给开发者实现毛玻璃效果的API,所以很多人都是通过一些别人封装的框架来实现,后面我也会讲到一个; 其实在iOS7.0(包括)之前还是有系统的类可以实现毛玻璃效果的, 就是 UIToolbar这个类,并且使用相当简单,几行代码就可以搞定. 下面是代码实现:

IOS8的新特性:简洁易用的毛玻璃效果

探寻IOS8的新亮点:毛玻璃效果的简易实现 IOS8之前,apple官方并不建议开发者使用类似毛玻璃的模糊效果,也并没有开放相关的接口,大部分的开发者是通过转化CGImage这个类来实现毛玻璃的模糊效果,并且实现的效果也很优秀.在IOS8之后,苹果官方新出了一个类UIVisualEffectView,通过这个类,实现毛玻璃效果变得轻而易举,而且效率非常之高,下面,我们来介绍下这个类的简单用法. 一.了解几个类 1.UIVisualEffectView 这个类为我们提供了一个方便的接口,用来展示复

IOS毛玻璃效果

最近实习公司的ios项目中需要用到毛玻璃的效果(如下图效果) 尝试用了几个方法都不太满意,最后终于找到了一个比较好的解决方案. 在IOS8以上的机器中,我们可以利IOS SDK中已经提供了的UIBlurEffect和UIVisualView实现简单毛玻璃的效果.实现的方法如下: UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"originalImage.jpg"]]; [s

用js或css实现高斯模糊(毛玻璃效果)

问题描述 用js或css实现高斯模糊(毛玻璃效果) 想用js或css实现图片的高斯模糊(毛玻璃效果),兼容性好的. 解决方案 .blur { -webkit-filter: blur(10px); /* Chrome, Opera */ -moz-filter: blur(10px); -ms-filter: blur(10px); filter: blur(10px); filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=10,

ios-iOS 关于导航栏设定背景色 实现毛玻璃效果

问题描述 iOS 关于导航栏设定背景色 实现毛玻璃效果 页面是带head滑动广告栏的tablview,使用了系统的导航栏,想要实现导航栏部分背景颜色实现毛玻璃半透明效果 ,还有随tableview滑动的颜色渐变效果,试了好多方法,包括Blur都没达到效果,在考虑自定义.请问对于系统的有什么好的解决方案没? 解决方案 系统的导航栏,需要设置 translucent = YES 另外只有iPad mini,iPhone5,(ipad的好像是air开始),及以后的设备才支持毛玻璃效果 如果是以前的,只

centos6.7上打开Qt发现整个界面变成黑白效果

问题描述 centos6.7上打开Qt发现整个界面变成黑白效果 在centos6.7上打开Qt5.4.1整个界面变成黑白,功能可正常使用,qt安装过程没有报错,当qt软件为当前对话框时 整个界面为黑白,当选择其他窗口后qt恢复正常样子,请问是怎么回事 解决方案 http://blog.csdn.net/taiyang1987912/article/details/37037657