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

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

[复制链接]
发表于 2008-1-31 14:10:26 | 显示全部楼层 |阅读模式
一、在VS 2003 环境中:9 i) U5 ]; n0 z+ D
1.在工程的目录下建一个名为 xpapp.manifest的文件. 把下面的内容拷到这个文件中:
/ y1 j3 J! i' L, E2 X<?xml version="1.0" encoding="UTF-8" standalone="yes"?>. t. q" E7 S5 t; B1 I+ a9 _  K
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> - Z$ r- a/ U& S- r* L6 ]
<assemblyIdentity
/ ]4 E- c  A' E. c1 S6 {    version="1.0.0.0" ; ~) a4 V- ~& Z+ x+ D9 T, o0 r# l
    processorArchitecture="X86"
, R( ]' _8 i" q" P- E: q    name="Microsoft.Windows.ViPod"
4 V9 x- S1 m# M' f5 c7 w4 _, w6 ^    type="win32"
5 G: A8 T1 }/ Q* J: w# a4 m/> * v5 i2 F. r# H$ r
<description>Your app description here</description>
1 z* ?( i" h" s<dependency> " Z+ I. n+ n9 E  `. Z
    <dependentAssembly>
# V* Y5 N$ S3 t2 \, M* d; G/ M        <assemblyIdentity
8 |' z2 x0 g4 X. J; W- i- `7 S9 H            type="win32" ) ~1 \1 `+ U* Z, J  W$ ]/ J
            name="Microsoft.Windows.Common-Controls"
/ n! e2 }4 f6 b- }, J; X            version="6.0.0.0"
5 x/ q7 O! T& d0 l5 M' E            processorArchitecture="X86" , \6 R+ }$ h: U0 Z1 x
            publicKeyToken="6595b64144ccf1df"
2 Y* E- L8 l  ?4 B            language="*" / z  D' [" S+ c3 h
        /> . A/ x8 B2 G) M+ {9 E, a2 D
    </dependentAssembly>
: w+ x3 t% t1 o+ G3 D- Y</dependency>
% Q) `" G! g9 N* z1 \$ z</assembly>
# n, j2 n; a0 x
# {2 Y( N) Q( z( T2.将工程的*.rc文件打开, 加上这样一句话(注意要加上#endif前):# Y; H( C6 s# ?7 D# T6 F" Q5 A
//这名话是告诉工程使用刚才我们创建的那个文件,使程序界面变成XP风格( ?, E$ X/ `: Z& `$ X9 z
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "xpapp.manifest"
2 M& l( d/ ?6 z) S: W. s7 Q8 {7 G9 H) w% e2 |- E' @
3.在工程的C*App文件中加上
( ]# w& b6 |4 B/ d6 h, W: Z2 Z#pragma comment(lib, "ComCtl32.lib")      //3步是选做, e/ R2 {  w7 P! f
4.如果你的代码是用V6的向导生成的,那必须将工程转成vc.net下,然后在C*App的InitInstance()最开始出加上; Q, y3 ~3 ~6 f0 z: o) v1 l/ ~& g
InitCommonControls();这个函数,V6的向导不会自动添加这个函数., i; p4 `$ V( Q* S6 p
//4步是选做2 k% P4 V! |1 f4 @6 j

" n$ w% o/ o) ]0 @3 _% x3 v4 q( X" W9 P$ |4 a. r
二、如果是VS 2005 则有所不同:; y5 m- i: F( A# C% c1 M
VS 2005中,如果Project->Property  -- General -- Character Set 为Use Unicode Character Set,那么程序的界面自然就是XP风格,不需要手动添加任何东西。但是如果这里是Use Multi-Byte Character Set,那么就要自己动手加东西了,和上面操作差不多。- D8 N" T, L. w( r% `
' Y1 T8 q) e. |+ J8 J
1、建一个名为XPStyle.manifest的文件) F* R+ \( F$ w
2、把下面的内容拷到这个文件中
& a; b% }! W; }9 Y/ O( F<?xml version="1.0" encoding="UTF-8" standalone="yes"?># J( R- i9 R; V: r
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
7 [" K- @  o) k2 Z) N  <assemblyIdentity
5 I  y6 l  I: R% Q" K- J' Y0 p7 u      version="1.0.0.0" 9 W5 j" J/ w* Q2 i8 G* A
      processorArchitecture="X86" % o3 `4 u# n) Q1 w
      name="Microsoft.Windows.WorkSapceName"& x6 C. h" n0 H" q5 L# I' R
      type="win32" . |6 g* f9 L1 K3 @
/>: `& w; F( z" J0 i0 l! Y
  <description>Your app description here</description>4 ?3 E, X3 U% z& y4 d
  <dependency>
, v) c. K# U  `3 Q4 A    <dependentAssembly>; u/ x+ b- p# ?3 Z; |& l4 j8 X9 D& T5 H3 z
      <assemblyIdentity
! ?6 j! T/ P' _: D8 d          type="win32"
; D. A1 i$ _* @) Q- b$ i          name="Microsoft.Windows.Common-Controls" 3 p- V5 Y/ q& ~1 c
          version="6.0.0.0" ! U9 l5 v9 L+ e( g8 D
          processorArchitecture="X86" ! ^, _7 [$ w4 t4 E
          publicKeyToken="6595b64144ccf1df"
# G3 A+ i( l$ `& A) W) Y& Q/ x0 N          language="*"
, z  i3 G9 |0 K% R) x        />) ^7 [" I5 X  ~" H2 r" \1 Y
    </dependentAssembly>
2 d! A! ^. f* G) v0 d* |  </dependency>
9 T& i! }; g* ~4 a- S- T& b</assembly>/ n" G# Y+ T. d" Y7 _# C- W
1 E4 \6 A* ]1 s9 i; R9 A0 ?3 b
3、Project->Add Existing Item...将XPStyle.manifest添加到工程中。
, }4 w& }7 }8 y% `  F, H* V8 P  ?* `: r  P9 l7 G
4、打开工程中的Resource.h文件,加上:
4 ~) ?5 a1 z7 d- Y4 \# Q  b#define IDR_MANIFEST  1
- i5 X+ h. _( D7 \7 U% y3 E) V#define RT_MANIFEST 24
0 Q( A7 Y% B% ^3 `* T8 ?
& G7 Z! [' C) N$ H- D5、将工程的res\*.rc2文件打开, 加上:$ Y2 y' `: Z7 ?
// Add manually edited resources here...3 I# p- q5 J$ f7 j1 f7 L3 v- x5 b# P0 M
IDR_MANIFEST RT_MANIFEST MOVEABLE PURE   "res\\XPStyle.manifest"" y1 c# o2 n( ^

, [; {& h% [& C/ ]" ?; i8 w2 l' ^0 ?' f: m* A3 U
6、Rebuild.....就可以了。
5 o) n& K  {. |) Q" s$ n) c5 i5 c( C(源自:http://blog.csdn.net/limigy/archive/2006/04/04/650008.aspx)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 10:35 , Processed in 0.020387 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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