找回密码
 注册
搜索
查看: 5478|回复: 0

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

[复制链接]
发表于 2008-1-31 14:10:26 | 显示全部楼层 |阅读模式
一、在VS 2003 环境中:
: O& o) z9 H! f4 }6 {3 _
1.在工程的目录下建一个名为 xpapp.manifest的文件. 把下面的内容拷到这个文件中:! V6 l/ D4 h5 V. J: T
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' H  Z( ?- W' c# S% B* ]& C, [
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  O& d( F8 T7 ~$ ~# d; @<assemblyIdentity * X, h. }  U* N, ^) o
    version="1.0.0.0"
4 ^5 W% J* `$ G0 j/ R    processorArchitecture="X86"
% [9 A- J0 ?: L5 N5 c2 \, @& p    name="Microsoft.Windows.ViPod"' ?3 v0 C8 \0 j5 e* |4 N
    type="win32" 8 T( E" H' N+ i6 X; c! R
/> # Y! V: A- J( ~! G" E6 b
<description>Your app description here</description> % y3 \6 [8 ~7 s6 p
<dependency> % o4 T2 ~+ ]/ B# ^% l6 L
    <dependentAssembly> * S  U' W) y# O2 o: l( O; @
        <assemblyIdentity
! O8 b7 R7 _/ B5 a! w$ T            type="win32" # D) o) w1 K! P; ^, X2 K; w
            name="Microsoft.Windows.Common-Controls"
" b% n- M5 y/ L) O) R& |; ~            version="6.0.0.0" * H2 |9 Y& s9 d6 }" h* k
            processorArchitecture="X86"
$ X# L6 k3 K8 F% N# i# h' ]            publicKeyToken="6595b64144ccf1df"
+ o4 q. H, g" P+ V5 @% e            language="*"
5 g3 _5 a2 D2 b/ Z, x4 K5 K6 a: w2 K        />
) z; f/ y! y; K) g" b    </dependentAssembly> 1 J5 X2 v6 R; R( l
</dependency> + g8 |' M9 N0 n% u  N: {5 v2 d
</assembly>
7 {2 {% f. ?8 J$ A* N9 F* Y) m& }3 G; G4 U5 B% ~
2.将工程的*.rc文件打开, 加上这样一句话(注意要加上#endif前):& {. a6 F7 _# t( O7 a
//这名话是告诉工程使用刚才我们创建的那个文件,使程序界面变成XP风格1 V/ L$ ^" Q: ]( P& L8 i2 Z
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "xpapp.manifest"
/ I& c# ?. [! t5 l% Q
2 Z9 t) `+ u5 c) E0 S- K7 z3.在工程的C*App文件中加上
3 \, i) C! o1 c# n#pragma comment(lib, "ComCtl32.lib")      //3步是选做
) d- c9 w; g5 L9 F/ e3 U* i4.如果你的代码是用V6的向导生成的,那必须将工程转成vc.net下,然后在C*App的InitInstance()最开始出加上
/ ]8 a) h" p* s7 DInitCommonControls();这个函数,V6的向导不会自动添加这个函数.! D$ X. h3 w. y
//4步是选做( r/ l& M& ]6 j% l9 W7 a- y$ i

, s5 {2 h8 S0 u: A( i- K2 l0 W9 t, u! ?0 n: _+ y( E$ Z
二、如果是VS 2005 则有所不同:0 d0 B4 M5 y# p% u2 O  z
VS 2005中,如果Project->Property  -- General -- Character Set 为Use Unicode Character Set,那么程序的界面自然就是XP风格,不需要手动添加任何东西。但是如果这里是Use Multi-Byte Character Set,那么就要自己动手加东西了,和上面操作差不多。, s2 S6 Q* Y( \% v
0 K8 `% s) {3 e
1、建一个名为XPStyle.manifest的文件
1 M/ d1 z0 _5 e$ w% v5 R  x* t! l& D2、把下面的内容拷到这个文件中
1 d& }- p7 L# E" h& W& @) E- y<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
4 H. g# c. x4 [% S: f<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">6 J( T  I! J: I8 }" A5 ^  q
  <assemblyIdentity 7 M0 y1 q2 t8 L6 j$ h
      version="1.0.0.0"   \- i. G. j) K, ^" \) q
      processorArchitecture="X86" ! ?7 y  f3 T- l. D- H! s7 e' k
      name="Microsoft.Windows.WorkSapceName"
$ |7 H0 h9 B7 R; j, C8 O      type="win32" % O! ~5 |' E! L8 e
/>
  K; g& U; o5 D  <description>Your app description here</description>3 a; k$ y1 y* e% E0 p
  <dependency>
) H( w$ K" s% a; r6 a    <dependentAssembly>/ L/ b; U2 A' C5 Q, {' [' n( h
      <assemblyIdentity
! b7 N. j. J. x) C- q) t          type="win32"   `+ Q. v  ~% f$ J0 f1 |
          name="Microsoft.Windows.Common-Controls" 0 ]  [1 X2 @( J, [! ~
          version="6.0.0.0" 1 i0 W6 E/ L9 [/ x& \; n' \
          processorArchitecture="X86"
; E3 ?- p+ k+ I4 m: k          publicKeyToken="6595b64144ccf1df" 3 h/ u$ ]3 ^5 e: p* h
          language="*"
  H- p3 q. w  P  n! b        />
' t9 I' G% p! T# ~: i& z- U. b! R) E# X    </dependentAssembly>9 ^7 F4 k8 y  d, _# R- J0 D/ @/ s3 m
  </dependency>+ m' y( V) n& w
</assembly>
3 ?+ ~$ g5 [  G& l# t( t, L7 J6 Y# r* R# u% ?
3、Project->Add Existing Item...将XPStyle.manifest添加到工程中。5 E7 z* `4 Z+ Y8 J) }7 J" {

+ s5 h7 n- x7 u  M; b5 D& r3 l; `4、打开工程中的Resource.h文件,加上:2 s" C  K' _$ B- }, [0 }  l+ Q& M
#define IDR_MANIFEST  1
& @5 K, R8 |( m#define RT_MANIFEST 24
  d' N. V: t! L( M* Z- @4 J% S# |. {5 r9 r) x
5、将工程的res\*.rc2文件打开, 加上:6 C. V$ G5 k4 x) N; f0 e* m
// Add manually edited resources here...  u) \" J, H3 Y( ~$ @, ?
IDR_MANIFEST RT_MANIFEST MOVEABLE PURE   "res\\XPStyle.manifest"9 [( s4 E) Y6 ~% a: C
+ L* E1 b4 a$ w6 m2 e
+ h( t9 I$ h/ W5 z- \. @5 u9 C
6、Rebuild.....就可以了。  w( l$ U* y5 B( P
(源自:http://blog.csdn.net/limigy/archive/2006/04/04/650008.aspx)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 12:16 , Processed in 0.019149 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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