程序中控件实现随xp风格的改变而改变

让在vc6创建的程序中,控件可以随xp风格的改变而变化,不用再程序中添加代码来自己实现~

感谢 [jack_rose] 的回答~
用个记事本保存下例为:程序名.exe.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="ATI.HydraVision.MagnifyFX"
    type="win32"
/>
<description>应用程序描述</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

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

  .manifest文件内容如下: 

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
  <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
  <assemblyIdentity 
   name="XP style manifest"  
   processorArchitecture="x86" 
   version="1.0.0.0" 
   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>  


  大家也看到了,这其实是一个XML文件,打开记事本,复制上面的内容,然后存盘,文件名任意,这里我存为XPStyle.manifest。  

  然后在VC中新建一个MFC AppWizard(exe)工程,Document/View或Dialog均可,接着把XPStyle.manifest复制到工程所在目录,再用记事本或其它文本编辑工具手动修改工程目录下的资源文件(.rc),在文件最后加上一行:  

  1 24 “XPStyle.manifest” 

  最后加上的那一行,“1”代表资源ID,必须是“1”。“24”代表资源类型,我想我们对RT_ACCELERATOR、RT_BITMAP、RT_MENU、RT_STRING等资源都非常熟悉,而“24”实际上是RT_MANIFEST。最后面引号中的东西我就不再啰嗦了
        这样编译后生成的文件只有一个exe,但是同样可以在xp系统下实现xp风格控件

posted on 2007-03-21 11:18 isrobert 阅读(860) 评论(4)   编辑  收藏
href="http://blog.vckbase.com/isrobert/Services/Pingback.aspx" rel="pingback" />

评论

我怎么实验不成功呢
一运行程序,就提示“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”
请高手帮忙看看

#  re: 程序中控件实现随xp风格的改变而改变 2007-03-30 17:48 isrobert
呵呵,我不是什么高手,我只是将我遇到的问题和得到的答案记录下来罢了:)
你的问题我无法解答,我不知道你是如何做的~
我将[jack_rose] 的这段代码生成了文本文件。文件名为:程序名.exe.manifest ,跟我的exe文件放到同级目录就好用了。
里面代码的具体含义我不太清楚,如果有什么不明白得可以去vck论坛上找[jack_rose] ,我想你可能会得到答案~

#  re: 程序中控件实现随xp风格的改变而改变 2007-04-07 15:19 ebug
也可以把它加到res目录的test.rc2(test是工程的名称)
因为rc2一般都没有什么内容,修改的风险比较低(或者是个人喜好)

rc2文件的内容一般如下:

//
// TEST.RC2 - resources Microsoft Visual C++ does not edit directly
//

#ifdef APSTUDIO_INVOKED
#error this file is not editable by Microsoft Visual C++
#endif //APSTUDIO_INVOKED


/
// Add manually edited resources here...
1 24 "res/kFishXPStyle.manifest"

 
#  re: 程序中控件实现随xp风格的改变而改变 2007-03-23 09:43 willing
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值