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

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

[复制链接]
发表于 2008-1-31 14:10:26 | 显示全部楼层 |阅读模式
一、在VS 2003 环境中:+ {  w+ L1 O3 Z, r0 \% t6 `$ a5 g: j4 i
1.在工程的目录下建一个名为 xpapp.manifest的文件. 把下面的内容拷到这个文件中:
# {1 q- b* X3 q- l+ Z# `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>: f+ i; _% o8 P) Q; O0 }" o
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
/ {0 L$ Z4 m$ e/ v5 u+ P* a<assemblyIdentity & _5 m$ A: P& Q; t2 W* R. t
    version="1.0.0.0"
& k2 |# l1 L0 i: d* }' Q    processorArchitecture="X86"
8 }! P. |% o, Q! N$ `    name="Microsoft.Windows.ViPod"
9 f5 N0 i" O3 u' f4 y    type="win32" ) S: R2 t& e! `/ W- |
/> & b! r& l# ?% @: l: I
<description>Your app description here</description>
5 p0 W( X/ w% |+ ^  n3 }2 l<dependency> . v* p" a* u, @4 j3 j1 r
    <dependentAssembly>
! K8 o3 H, k) [8 g5 I        <assemblyIdentity / I: I; k" D( e3 u+ L; H* x8 q
            type="win32" - n+ z3 w8 d7 M  N3 s- B
            name="Microsoft.Windows.Common-Controls"
6 ]8 T  |& O& d9 Z            version="6.0.0.0" 1 j8 N8 j- S5 q0 e# z& w
            processorArchitecture="X86"
! T( |) d% f; w  a  u            publicKeyToken="6595b64144ccf1df" ! [7 Z1 P" Q5 m. }; `
            language="*" ) D$ G" S3 q- S5 n
        /> . O, u7 V% D/ V. i
    </dependentAssembly> 9 j( x: }* [: d5 g- i
</dependency>
8 z3 B+ C  s+ `& s2 P</assembly>
2 A' Y+ d3 c* i* l
, H9 S+ I( Y4 U3 E5 A3 k; q2.将工程的*.rc文件打开, 加上这样一句话(注意要加上#endif前):/ m* d! U5 x- `$ |: e. t$ E
//这名话是告诉工程使用刚才我们创建的那个文件,使程序界面变成XP风格
9 C. U2 E/ w3 {$ E4 U5 k9 T. |) K8 hCREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "xpapp.manifest"
) A6 b# @$ D# H) n. o5 _  `+ ^# `  E: r- z6 p5 k$ N" d+ V3 s0 ~
3.在工程的C*App文件中加上
' l! Y/ j, }3 A+ W6 }1 L( h$ U% ~#pragma comment(lib, "ComCtl32.lib")      //3步是选做
  F2 H: q" c. ~, e2 Z4.如果你的代码是用V6的向导生成的,那必须将工程转成vc.net下,然后在C*App的InitInstance()最开始出加上" ]! o( S; U( H$ I
InitCommonControls();这个函数,V6的向导不会自动添加这个函数.
7 q' ~; b0 X: K5 s/ ]2 K//4步是选做
" C4 d2 s& l0 T/ ?4 f3 h% {, Y% G( @

. w& g% o2 T/ F- D: W& r二、如果是VS 2005 则有所不同:! ~6 D" n3 s4 r. H( A3 ?
VS 2005中,如果Project->Property  -- General -- Character Set 为Use Unicode Character Set,那么程序的界面自然就是XP风格,不需要手动添加任何东西。但是如果这里是Use Multi-Byte Character Set,那么就要自己动手加东西了,和上面操作差不多。
- w6 C. r& y# v" h2 C) |
7 H! @$ Q1 ?9 S5 j, \' q1、建一个名为XPStyle.manifest的文件* N) p6 B. a9 l6 p' y; d2 h
2、把下面的内容拷到这个文件中! _4 \+ p5 H( T0 r' F: f; e2 I
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  w' f1 Y8 x9 B<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">2 @& U7 {0 p! a
  <assemblyIdentity / b" H1 X; j: r! ~1 o
      version="1.0.0.0" " E# A6 o; y6 e1 \6 j# Z8 w
      processorArchitecture="X86" 5 F0 f# t( o* V( }0 p9 j8 F; h
      name="Microsoft.Windows.WorkSapceName"
" \  X5 l+ ]& l: T1 j2 q$ U      type="win32" + M/ O0 L) l) I1 D( h& b, Z
/>8 z+ K( r3 {7 P$ Q3 \5 p
  <description>Your app description here</description>7 `% V1 w1 w3 D, K
  <dependency>( K6 q" e$ F. P
    <dependentAssembly>
3 x0 E4 k1 X; h5 l+ C2 T1 S8 |5 F- l      <assemblyIdentity $ q# _3 C2 s( Z
          type="win32"
9 R, C6 |5 Q' j5 x+ Z# b          name="Microsoft.Windows.Common-Controls" 5 s1 N* C- ^8 h9 v  ~5 I, u
          version="6.0.0.0" 5 |0 e% @0 l* d, B' k# k2 }
          processorArchitecture="X86"
) l# P) l9 o9 ^* A( v          publicKeyToken="6595b64144ccf1df"
7 V' }- J, T/ a: h          language="*" 7 J6 v. ^( r! [/ f5 S
        />0 n, e' r  q8 B/ C! W" O' a# O
    </dependentAssembly>
  I/ n. T6 n& s% f, ]+ \( `  </dependency>5 L7 y8 y4 g9 M6 H1 e% r$ W0 h
</assembly>3 N; q1 i- u+ s7 W
. y! M( O7 w8 g: Z
3、Project->Add Existing Item...将XPStyle.manifest添加到工程中。7 F0 ~# M/ w( x9 s, h
) b: K: \4 h8 b  O
4、打开工程中的Resource.h文件,加上:
# I1 y/ d" i6 ~" G/ S* G#define IDR_MANIFEST  1 2 v& z+ Z4 G  n8 }( u! F: H6 w
#define RT_MANIFEST 24 . {# Z* a! N0 p# W' E- n% z& V

" S, x# L3 j7 j7 e8 c+ {+ D5、将工程的res\*.rc2文件打开, 加上:
! K) G; W6 v$ }* b7 E' e  I// Add manually edited resources here...
8 Q$ N$ x/ q4 U2 R! H! g' AIDR_MANIFEST RT_MANIFEST MOVEABLE PURE   "res\\XPStyle.manifest"4 U3 @4 W' T8 i

- i8 Q; A0 Q; A; \% ]5 f9 J( [4 ^6 _. j6 C! {' T9 s
6、Rebuild.....就可以了。
/ i2 T+ e% Q* f( N8 M(源自:http://blog.csdn.net/limigy/archive/2006/04/04/650008.aspx)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-2 03:40 , Processed in 0.016823 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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