找回密码
 注册
查看: 5609|回复: 0

使程序界面具有XP风格(在VS2003和VS2005中)

[复制链接]
发表于 2008-1-31 14:10:26 | 显示全部楼层 |阅读模式
一、在VS 2003 环境中:) A, P  U1 G1 L2 v* _6 c: Z4 E
1.在工程的目录下建一个名为 xpapp.manifest的文件. 把下面的内容拷到这个文件中:
( K$ y4 k& X- h( h8 q, [<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
5 }6 w( [; m/ c- {: {* X<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
9 K+ H4 E0 V' m$ [7 `, S+ l<assemblyIdentity
6 b: y1 ~; R. L  W4 k5 F    version="1.0.0.0" # ]3 C# C# K/ S# N: y* \( V! f
    processorArchitecture="X86"
7 A2 l% `5 h% g/ l/ `% C    name="Microsoft.Windows.ViPod"% H. s& D1 L: x. X
    type="win32" $ f! |' k: P/ _
/> 4 d0 j  i( t( w6 |
<description>Your app description here</description> ) j8 p. `4 }- C6 N" J* p
<dependency>
2 U) Q7 [0 K# f) S) A/ J1 e    <dependentAssembly> 6 T! F' `# M8 t7 y! F* y( \3 s
        <assemblyIdentity
/ V6 N3 t# |& g: o6 e            type="win32"
( j: r3 g1 t! \9 p- t            name="Microsoft.Windows.Common-Controls"
" j* {2 y& e# S  I, H3 t6 p            version="6.0.0.0" 0 z$ ]. N! Z! C4 [
            processorArchitecture="X86"
0 q3 F- m: i- b' q, {0 v            publicKeyToken="6595b64144ccf1df"
! i, h/ d4 R5 ~& W            language="*" 7 Z/ r/ }5 j; s" S' e
        />
' h8 U0 S) _  _5 n$ c( G) a# a' s    </dependentAssembly> , V7 h& u8 c- F$ L2 N# H
</dependency>
8 }) ]# u0 G! _- n</assembly>
. y0 ?: W' l- L, i- ]6 T; j; Q. K- s* J1 v; t  b* k
2.将工程的*.rc文件打开, 加上这样一句话(注意要加上#endif前):5 _$ r, e5 S8 C0 k& `) c1 n
//这名话是告诉工程使用刚才我们创建的那个文件,使程序界面变成XP风格& d; c: y7 x2 U% A
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "xpapp.manifest"
( a4 U9 G8 k; M& ?
7 `& I% b5 a1 i6 s3.在工程的C*App文件中加上
2 Y: d' s8 V3 B' f#pragma comment(lib, "ComCtl32.lib")      //3步是选做
, ^8 O( |" N- R4.如果你的代码是用V6的向导生成的,那必须将工程转成vc.net下,然后在C*App的InitInstance()最开始出加上
' Z9 H" o- _( I9 i" o5 b7 jInitCommonControls();这个函数,V6的向导不会自动添加这个函数.' @6 z3 ?2 q( v7 A5 G/ d' N; ^
//4步是选做
! F8 |" N# z" o& l3 Y# p7 p
6 T( I9 W1 F3 d* u7 B4 {; F/ }. q3 [  h7 U+ v+ s, z6 Q( \4 D
二、如果是VS 2005 则有所不同:
, Y0 t8 V/ i0 S. Y! _. w( }VS 2005中,如果Project->Property  -- General -- Character Set 为Use Unicode Character Set,那么程序的界面自然就是XP风格,不需要手动添加任何东西。但是如果这里是Use Multi-Byte Character Set,那么就要自己动手加东西了,和上面操作差不多。
: @4 N" @6 \8 g3 s: |
# ^3 u& `! n  W& B  S1、建一个名为XPStyle.manifest的文件$ `4 e  z0 P9 m  P! E
2、把下面的内容拷到这个文件中
3 B( p/ K- }8 a6 K<?xml version="1.0" encoding="UTF-8" standalone="yes"?>1 B' d! [7 z/ k7 ^  {8 M! |# x( F
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">. r$ D1 Y  k4 [4 d* E6 Z  u
  <assemblyIdentity
9 y% p& n: z- o# ]      version="1.0.0.0"
2 F8 w/ y% X7 S( ?6 \8 i      processorArchitecture="X86" " |, z' s! m: h! V9 h0 O
      name="Microsoft.Windows.WorkSapceName"
. v* H3 W) C0 O5 ?# Z1 b( t      type="win32"
% W2 Q: A9 {3 I+ j* Y/>
7 a" q' g! Y1 {% }- _  <description>Your app description here</description>
% B9 R/ I0 q0 C# p! G1 F. n6 T  <dependency>
; |8 r* ^  e# N    <dependentAssembly>
4 m6 U  q: r0 n3 e1 X4 M      <assemblyIdentity 5 f" G) w" {) j$ e6 {* @- j- T
          type="win32" " A$ _8 V4 t! G  R. B4 ~
          name="Microsoft.Windows.Common-Controls" - N& z# U, n! l+ O* }; w% [
          version="6.0.0.0"
- G6 u4 ?) y6 m. O6 I3 F          processorArchitecture="X86"
1 X9 `6 D0 {+ Q( q  H          publicKeyToken="6595b64144ccf1df"
+ ?/ [; s! B9 R! m- r: }          language="*" . R5 K/ ]% G' H  }# w7 I1 R
        />
& X* A: K5 Q, d5 K  w; j    </dependentAssembly>. o$ ^7 |  r+ O; D1 L0 T4 ^2 G- r
  </dependency>
' b/ U! q, p/ C3 ?6 o$ X</assembly>" T" V5 s: ?: R& _) |$ u5 V: a1 {
" {( f* y4 A. ], @7 T! Q& s" v
3、Project->Add Existing Item...将XPStyle.manifest添加到工程中。
' [6 q7 ]" x) M2 P' I$ W
  N2 i1 c9 c. h# }2 u' h4、打开工程中的Resource.h文件,加上:" E: k/ u4 M! _6 f
#define IDR_MANIFEST  1
' |  A& K- F' N& g1 m5 \: m" H" X#define RT_MANIFEST 24 9 V9 ~7 @# p: F2 z4 ~

: i2 T5 R' l; f# c. Z* a5、将工程的res\*.rc2文件打开, 加上:
- G1 }4 {2 B, k$ V/ Q) x6 O" {// Add manually edited resources here...( G- p6 N0 N6 c) c+ ?* V( ~9 E. @: N
IDR_MANIFEST RT_MANIFEST MOVEABLE PURE   "res\\XPStyle.manifest"
# ~5 @0 U7 c  t" f+ m
" T2 m$ Y) C' e& Q9 p
# |) m+ {) i" ^+ W  L, W+ B- X6、Rebuild.....就可以了。
7 O9 t8 H5 v( V" B7 J1 v- {(源自:http://blog.csdn.net/limigy/archive/2006/04/04/650008.aspx)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2026-10-2 02:28 , Processed in 0.017447 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表