VC++.NET实现应用程序XP风格
首先,我必须说明一下:以下说的 XP 风格程序并非可以运行在任何Win32平台上,而是在 Windows XP下运行的。有的朋友可就纳闷了,任何在Windows XP下运行都有XP风格嘛,为何要花功夫去“实现”。请先看看下面两幅图 图1 图2 在 开发 时实现 怎么样?应该明白其
首先,我必须说明一下:以下说的
XP风格程序并非可以运行在任何Win32平台上,而是在
Windows XP下运行的。有的朋友可就纳闷了,任何在
Windows XP下运行都有XP风格嘛,为何要花功夫去“实现”。请先看看下面两幅图
图1
图2
在
开发时实现
怎么样?应该明白其中的区别了吧。为什么会这样?因为微软为Windows XP提供了Themes服务。Themes可以让程序具有“XP风格”,看起来更美观,因为微软更新了Comctl32.dll(ver 6.0)这个“XP风格”的控件。微软还为了保留传统的Windows界面风格,特地留下了Comctl32dll v5.8。图1就是v5.8绘制的,而图2则是支持Themes的v6.0之作。有些朋友一定知道在VC7中建立MFC工程,程序会自动引入XP风格。VC6或者其他编译器呢?其实原理都一样的。首先建立一个文件,名为“?.manifest”(?是任何字符,manifest是扩展名。)
用文本输入以下是内容:
<﹖xml version=″1.0″ encoding=″UTF-8″ standalone=″yes″﹖> <assembly xmlns=″urn?schemas-microsoft-com?asm.v1″ manifestVersion=″1.0″> <assemblyIdentity processorArchitec ture=″x86″ version=″5.1.0.0″ type=″win32″ name=″yourappli cation.exe″/> <description>de scrptions</description> <dependency> <dependentAssembly> <assemblyIdentity type=″win32″ name=″Microsoft.Windows.Common-Controls″ version=″6.0.0.0″ publicKeyToken=″6595b64144clearcase/" target="_blank" >ccf1df″ language=″?″ processorArchitec ture=″x86″/> </dependentAssembly> </dependency> </assembly> |
保存以后,在编译器中导入此文件。资源类型是24(其实就是RT_MANIFEST),ID是1(必须)。若不能正常运行,请添加以下代码。
//… #pragma﹖comment?lib?﹖″comctl32.lib″? #include < commctrl.h> //…在初始化处加上… InitCommonControls??? |
然后编译则大功告成!
原文转自:http://www.ltesting.net
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
|