用C++品尝Vista美味[1]
简介
本文将演示如何使用C++在基于Windows Vista的普通Windows应用程序和对话框程序中生成Aero磨砂玻璃效果。这里用的是Vista的Beta 2版本和Windows SDK,后续版本可能会有一些API细节上的变化。另外,本文没有用到MFC,所有的例子都是用http://wtl.sourceforge.net/.的WTL 7.5生成的,虽然这里用的是Visual C++ 2003,Visual C++ 2005也差不多。
Aero主题和磨砂玻璃效果是Vista“桌面窗口管理(DWM)”的新功能,也是微软营销的一个重点。在应用中集成毛玻璃效果,会让应用在打开Aero主题时看起来很不一样——很酷吧?
Aero主题中的毛玻璃效果
当Aero为主题时,Vista会根据电脑显卡判断是否开启毛玻璃效果。此时桌面由DWM绘制,DWM使用一个构图过程来渲染桌面,会自动在顶部窗口的非客户端区域使用Aero主题元素(有点类似Windows XP)。另一方面,这些毛玻璃效果并不总是添加的。如果电脑在“电池模式”下运行,或者用户决定关闭透明效果,非客户端区域将不会出现毛玻璃效果。
如果在控制面板的视觉效果中打开透明玻璃效果。
请注意,记事本的边框是绿色的,是壁纸的颜色,透过标题栏还可以看到桌面上的一些图标。
我们写代码的时候,关键是要注意构图是否打开,而不是设置什么毛玻璃效果,因为DWM会处理毛玻璃效果绘制部分。
位律师回复
0条评论