vc和vs2003上:
转载:http://hi.baidu.com/xyooo/blog/item/b380fe166ff8d81d962b43ac.html
如果你想让VS6, VS2003,的MFC程序拥有XP风格那么就学习下面的方法吧
方法一:
1.首先确认你在Windows XP下,因为如果在98或2K下,那除非自己重画画所有界面,要不基本上是无法实现XP风格的。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Windows.dummy"
type="win32"
/>
<description>Your app description here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
不要问我这段代码是什么意思,我也不知道,这段代码其实和任何一种试图实现XP风格时用的XML代码没有本质区别,几乎是一样的。粘贴进去时候存盘,名字随便取一个,反正到后面还是需要修改的。
3.假设在你的目录c:\abc下有一个可执行文件abc.exe,我们把刚才建立的那个XML的文件拷贝到c:\abc下,并把名字改为 abc.exe.manifest,这时候你可以运行abc.exe,看看是不是已经具有了XP风格了?依次类推,在每一个你想改为XP风格的程序的统一 目录里建立一个上面说的XML文件,并把名字改为可执行文件的名字加上".manifest"的扩展名(注意,不要把那个exe去掉,就可以了,你可以试 着在MSDEV.exe所在目录中搞一个medev.exe.manifest的XML文件,看看VC起了什么变化吧
vs2003和vs2005上:
转载:http://hi.baidu.com/xyooo/blog/item/b380fe166ff8d81d962b43ac.html
在VS 2003 环境中
1.在工程的目录下建一个名为 xpapp.manifest的文件. 把下面的内容拷到这个文件中:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Windows.ViPod"
type="win32"
/>
<description>Your app description here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
2.将工程的*.rc文件打开, 加上这样一句话(注意要加上#endif前):
//这名话是告诉工程使用刚才我们创建的那个文件,使程序界面变成XP风格
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "xpapp.manifest"
3.在工程的C*App文件中加上
#pragma comment(lib, "ComCtl32.lib") //3步是选做
4.如果你的代码是用V6的向导生成的,那必须将工程转成vc.net下,然后在C*App的InitInstance()最开始出加上
InitCommonControls();这个函数,V6的向导不会自动添加这个函数.
//4步是选做
如果是VS 2005 则有所不同
VS 2005中,如果Project->Property -- General -- Character Set 为Use Unicode Character Set,那么程序的界面自然就是XP风格,不需要手动添加任何东西。但是如果这里是Use Multi-Byte Character Set,那么就要自己动手加东西了,和上面操作差不多。
1、建一个名为XPStyle.manifest的文件
2、把下面的内容拷到这个文件中
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Windows.WorkSapceName"
type="win32"
/>
<description>Your app description here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
3、Project->Add Existing Item...将XPStyle.manifest添加到工程中。
4、打开工程中的Resource.h文件,加上:
#define IDR_MANIFEST 1
#define RT_MANIFEST 24
5、将工程的res\*.rc2文件打开, 加上:
// Add manually edited resources here...
IDR_MANIFEST RT_MANIFEST MOVEABLE PURE "res\\XPStyle.manifest"
6、Rebuild.....就可以了。