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

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

[复制链接]
发表于 2008-1-31 14:10:26 | 显示全部楼层 |阅读模式
一、在VS 2003 环境中:
! s" }. [4 B, L, s0 Q) E4 {3 U
1.在工程的目录下建一个名为 xpapp.manifest的文件. 把下面的内容拷到这个文件中:1 `$ e4 P) p7 e6 Y+ u! [
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
% M7 z8 Y1 |. X; L! @<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 0 i8 D6 B8 O' L! R* G( \
<assemblyIdentity . K5 q1 i1 s9 [, J6 N7 z
    version="1.0.0.0"
& h1 {/ N( w, E    processorArchitecture="X86"
$ \7 R% h1 j  ]! x/ n* m0 i( v    name="Microsoft.Windows.ViPod"
' d' E5 E2 ^4 K. m% T    type="win32"
6 R! x' H* s; u+ j3 A/> 4 d8 j& Q7 G" [6 z' l; q+ a( {/ f
<description>Your app description here</description> " }+ `" ^: m4 W3 Z: F' C
<dependency> 7 A4 y6 c5 l( b& Z, C
    <dependentAssembly>
6 Q$ @1 R4 n  L" v4 w, f        <assemblyIdentity : I# ?' ]! P( ~4 Y8 z7 I1 Z
            type="win32"
, V0 w* t! m3 `$ e+ a8 A! T  |            name="Microsoft.Windows.Common-Controls" # }0 ]4 `; n+ b+ S8 d/ F4 B
            version="6.0.0.0" 6 o/ H/ a+ x0 j, I
            processorArchitecture="X86" 0 T: R1 H2 ], o6 c, T
            publicKeyToken="6595b64144ccf1df"
+ ~) z/ e7 S2 A# h- h& Z9 T( U            language="*"
* I, d2 l4 \( Q5 l4 J- O        />
3 S5 T+ x6 A* Y8 S1 C' y* ~6 {- M    </dependentAssembly> / y+ `) @7 V: x) `7 [" {4 a
</dependency>
( ?* ^+ b! _8 B</assembly>
; T" p% K: N6 A. E6 [1 K2 z  s( l5 S' N# c1 n" j
2.将工程的*.rc文件打开, 加上这样一句话(注意要加上#endif前):
" C7 Y/ X& R) P0 n" G4 }//这名话是告诉工程使用刚才我们创建的那个文件,使程序界面变成XP风格
* Y1 t# A5 Y* N2 E7 J, Y( mCREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "xpapp.manifest"
0 ^# n1 ~0 G7 J# R9 \% t9 I
; D1 D4 l/ X$ R8 c/ v9 h3 L3.在工程的C*App文件中加上
  ]2 m  u# ]7 X$ p5 g#pragma comment(lib, "ComCtl32.lib")      //3步是选做, t' |) [1 S: I% P; f" {
4.如果你的代码是用V6的向导生成的,那必须将工程转成vc.net下,然后在C*App的InitInstance()最开始出加上
6 `& F( L" u+ f+ K3 d% V, w. tInitCommonControls();这个函数,V6的向导不会自动添加这个函数.
2 v% K& M3 _8 A6 p//4步是选做
% W9 J3 a; @. R0 _9 D9 c: r" U3 ?
# m1 m( f( v: T6 c$ O  e* D1 ^' d) q2 @  j, k
二、如果是VS 2005 则有所不同:
  o0 k: ?% n4 k7 J# w/ U3 D0 Z4 SVS 2005中,如果Project->Property  -- General -- Character Set 为Use Unicode Character Set,那么程序的界面自然就是XP风格,不需要手动添加任何东西。但是如果这里是Use Multi-Byte Character Set,那么就要自己动手加东西了,和上面操作差不多。0 ]& |, k7 S& f4 u5 a+ z% i5 z
5 v+ g  o: n- T5 d  h# b) M
1、建一个名为XPStyle.manifest的文件' n. `+ D+ Y/ K0 u
2、把下面的内容拷到这个文件中' |5 a/ R, X: a# V* z
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>* `$ w5 j# h  e, n+ E
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
0 q7 o. ]. ]  P$ v& v  <assemblyIdentity , V, a- q# _1 E" K' [: p
      version="1.0.0.0" & M& s6 D+ j& I
      processorArchitecture="X86"
! u5 b5 B0 L( h      name="Microsoft.Windows.WorkSapceName"
. z6 q/ @& _: {3 K& I  K  [: {      type="win32"
6 Y3 [- Q5 _9 N% n/>
4 E$ a, @% @$ T; ?$ E  <description>Your app description here</description>
# |% M  K) _" u+ r' I% |  <dependency>
. @2 H4 D0 c+ E) T    <dependentAssembly>
  }& K, v$ ?) J# y5 H4 H* L      <assemblyIdentity
6 g0 o! D, L  x0 i- z! G! ?          type="win32"
( A' }# k! ]4 `# g& [: V& E' j          name="Microsoft.Windows.Common-Controls"
; N' @. d* q5 _- Q4 r6 @9 {5 m8 F0 u          version="6.0.0.0"
% a9 p: q' j* }          processorArchitecture="X86"
* ^! O6 g  V# Y$ Z6 U" h          publicKeyToken="6595b64144ccf1df"
6 w$ m4 f$ F& ]8 s/ _, b          language="*"
6 j; O# f2 ?6 W: s8 H2 c        />
/ j1 A; ^3 _; k" |* t    </dependentAssembly>
( n- ]/ @# U+ i  </dependency>& f0 o  g7 [5 l' V; M& ~0 m
</assembly>
; c" u" z- R3 v5 n. j/ S! E1 B- o0 F4 I% J5 J- A. A
3、Project->Add Existing Item...将XPStyle.manifest添加到工程中。
1 [7 D2 y5 @$ b, q+ d) o1 G6 A3 e! W8 U1 T
4、打开工程中的Resource.h文件,加上:
  Q' u$ Z1 W; W#define IDR_MANIFEST  1
) i# Z5 ~4 f: n0 I2 c& T#define RT_MANIFEST 24 3 G! a  o, K6 O& |' q) p

5 T4 g/ V, B8 i- e: \7 a5、将工程的res\*.rc2文件打开, 加上:6 @- o# r. `( ^$ h) T% W
// Add manually edited resources here..." A( S# Y0 V/ R2 _1 \
IDR_MANIFEST RT_MANIFEST MOVEABLE PURE   "res\\XPStyle.manifest"" }8 v% X) C8 j" a8 k* y# J

* Q# [/ H, k( E- T& E* C
) `  P" \. g8 n: t6、Rebuild.....就可以了。
* r/ [: Q1 d3 D* [( u- B(源自:http://blog.csdn.net/limigy/archive/2006/04/04/650008.aspx)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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