반응형

ApplicationXP(Vista) Style의 테마 적용하기

 

XP 이후의 OS에서는 공용 컨트롤들이 좀더 예쁘장한 모습으로 나타납니다.

[ Windows 2000이전 공용 컨트롤들의 모습]

 

[ Windows XP이후 공용 컨트롤들의 모습]

 

 

 

 

내가 만들 Application에도 좀더 세련된 모양의 공용 컨트롤을 사용하려면 아래와 같이 작업하시면 됩니다.

 

n  VC 6.0

1. 아래와 같은 메니페스트 파일을 작성합니다.

MyApp.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

 

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

             <assemblyIdentity version="5.1.0.0"

             processorArchitecture="x86"

             type="win32"

             name="MyApp.exe"/>

 

             <description> MyApp Application</description>

             <dependency>

                           <dependentAssembly>

                                        <assemblyIdentity

                           type="win32"

                           name="Microsoft.Windows.Common-Controls"

                           version="6.0.0.0"

                           publicKeyToken="6595b64144ccf1df"

                           language="*"

                           processorArchitecture="x86"/>

                           </dependentAssembly>

             </dependency>

</assembly>

 

2. resource.h파일에 MANIFEST_RESOURCE_ID를 정의 합니다.

resource.h

#define MANIFEST_RESOURCE_ID 1

 

3. rc파일에 리소스를 추가합니다.

MyApp.rc

/////////////////////////////////////////////////////////////////////////////

//

// 24

//

 

MANIFEST_RESOURCE_ID 24 MOVEABLE PURE " MyApp.exe.manifest"

 

n  VC 2003 이상

ü  위에서 작성된 manifest파일을 [ 프로젝트> 속성 > 구성속성> 메니페스트 도구> 입력 및 출력>추가 메니페스트 파일 ] 항목에 추가한 후 빌드합니다.


ü  혹은 아래의 문구를 stdAfx.h등의 헤더 파일에 추가 한 후 빌드합니다.

( 이 부분은 MFC 프로젝트의 경우, stdafx.h에 자동으로 추가되는 구분이며, #ifdef _UNICODE 로 감싸져 있어, Unicode프로젝트에는 자동으로 적용되는 부분입니다. )

X86

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")

X64

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")

 

 

 

 

반응형

+ Recent posts