VS2005属性中character set设置为Not Set或Use Multi-Byte Character按钮风格转换

来源:互联网 发布:wish数据 编辑:程序博客网 时间:2024/05/16 15:54

     今天把工程属性character set改为Not Set或Use Multi-Byte Character后,按钮风格转变,比较难看。在网上查找后,解决办法如下

1.

打开 stdafx.h  找到

 

#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

注释掉上面绿色两行。


2. 

1. 将下面这段XML保存到你的工程目录下,文件名为XPStyle.manifest(注意后缀不是xml)

<?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="XP style manifest"

type="Win32"

/>

<dependency>

<dependentAssembly>

<assemblyIdentity

type="Win32"

name="Microsoft.Windows.Common-Controls"

version="6.0.0.0"

processorArchitecture="X86"

publicKeyToken="6595b64144ccf1df"

language="*"

/>

</dependentAssembly>

</dependency>

</assembly>

2. 在VC中点添加资源, 将XPStyle.manifest文件作为资源文件加入到你的工程中,

填资源类型号为24或者RT_MANIFEST(这是因为manifest格式文件不是VC的常规资源文件), 自己设定一个资源ID,比如说IDR_XP_STYLE或者1都可以.

                                           

(1).如果是dll工程,则在Resource.h中修改:

#define IDR_XP_STYLE  2

并在StdAfx.h中添加

#define ISOLATION_AWARE_ENABLED 1

(2).如果是exe工程,则在Resource.h中修改:(自己没有做这一步,发现并无影响)

#define IDR_XP_STYLE   1

3. 点击全部编译,运行你的程序看看.

(友情提示: 编译出来的程序在非XP系统下没有XP风格界面,将是传统的界面效果)

使用.manifest文件不费任何力气就可以在xp系统里实现xp风格的控件,但是这样做有一点不方便的地方就是manifest必须放到exe所在目录,如下做法可以将manifest文件放到资源文件中,编译后生成.res文件,link后自然就和.exe文件“合”到一起了。


 


0 0
原创粉丝点击