Visual Studio 2008中VC Windows XP 風格的實現
一.概要
Windows XP開創了一種全新的Windows用戶界面(UI),這種用戶界面給用戶一種現代化的、超時髦的感受。Windows XP新創了閃亮的具備圓形邊角的控件連同極富未來派氣息的進度條等具備新風格的控件。
而現在的Visual Studio也具備了此類控件。那麼研發者就想能否在自己研發的程式中使用這類超酷的控件呢。答案是肯定的,程式員所要做的僅僅是添加一些引用連同一個資源文檔。本文就通過介紹一個實例向大家介紹如何在Visual C++下將控件的Windows XP風格應用到自己的程式中。
注:本文介紹的控件風格特性只能在Windows XP下的運用程式中實現。
二. 使用Manifest文檔
假如您想在您的運用程式中運用Windows XP的外觀效果,您必須給您的工程添加一個Manifest文檔(在建立工程過程中用來確定資源的一個文檔)。這個文檔指明瞭在工程中應用版本爲6.0的 Comctl32.dll文檔(只要這個文檔存在)。版本爲6.0的Comctl32.dll文檔包括了一些新的控件連同一些控件的新特性,他和以前版本的最大的差異就是他支持控件外觀效果的改變。
不像以前的版本,版本爲6.0的Comctl32.dll是不能夠被重新發布的。您只能夠在包含他的操作系統中使用他的動態連接庫(DLL)。Windows XP既包含了版本爲5.0的,又包含了版本爲6.0的(在默認的情況下,運用程式是用版本爲5.0的Comctl32.dll的)。在版本爲6.0的 Comctl32.dll中,包含了用戶控件和一般控件。您只要改變和這些控件相關的dll文檔,就能夠使他們呈現出Winodws XP的外觀風格了。
爲了和用戶的電腦操作系統相協調,您必須在您的運用程式中建立一個Manifest文檔來明確的指定其窗體控件使用的是版本爲6.0的Comctl32.dll。該Manifest文檔是個XML文檔,他包含在您的程式中,作爲一個資源,或是在可執行文檔目錄下的一個單獨的文檔。
Windows XP開創了一種全新的Windows用戶界面(UI),這種用戶界面給用戶一種現代化的、超時髦的感受。Windows XP新創了閃亮的具備圓形邊角的控件連同極富未來派氣息的進度條等具備新風格的控件。
而現在的Visual Studio也具備了此類控件。那麼研發者就想能否在自己研發的程式中使用這類超酷的控件呢。答案是肯定的,程式員所要做的僅僅是添加一些引用連同一個資源文檔。本文就通過介紹一個實例向大家介紹如何在Visual C++下將控件的Windows XP風格應用到自己的程式中。
注:本文介紹的控件風格特性只能在Windows XP下的運用程式中實現。
二. 使用Manifest文檔
假如您想在您的運用程式中運用Windows XP的外觀效果,您必須給您的工程添加一個Manifest文檔(在建立工程過程中用來確定資源的一個文檔)。這個文檔指明瞭在工程中應用版本爲6.0的 Comctl32.dll文檔(只要這個文檔存在)。版本爲6.0的Comctl32.dll文檔包括了一些新的控件連同一些控件的新特性,他和以前版本的最大的差異就是他支持控件外觀效果的改變。
不像以前的版本,版本爲6.0的Comctl32.dll是不能夠被重新發布的。您只能夠在包含他的操作系統中使用他的動態連接庫(DLL)。Windows XP既包含了版本爲5.0的,又包含了版本爲6.0的(在默認的情況下,運用程式是用版本爲5.0的Comctl32.dll的)。在版本爲6.0的 Comctl32.dll中,包含了用戶控件和一般控件。您只要改變和這些控件相關的dll文檔,就能夠使他們呈現出Winodws XP的外觀風格了。
爲了和用戶的電腦操作系統相協調,您必須在您的運用程式中建立一個Manifest文檔來明確的指定其窗體控件使用的是版本爲6.0的Comctl32.dll。該Manifest文檔是個XML文檔,他包含在您的程式中,作爲一個資源,或是在可執行文檔目錄下的一個單獨的文檔。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="ROGAN.HyperRIS.HyperRISClient"
type="win32"
/>
<description>HyperRISClient</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="ROGAN.HyperRIS.HyperRISClient"
type="win32"
/>
<description>HyperRISClient</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
三. 更改Stdafx.h文件
在"Stdafx.h"中
定義#define _WIN32_WINNT 0x0501 // Include Windows XP symbols
即可。
定義#define _WIN32_WINNT 0x0501 // Include Windows XP symbols
即可。
因此,爲了使您的運用程式具備像Windows XP那樣的外觀效果,您必須:
1.建立一個Manifest文檔,將版本爲6.0的Comctl32.dll捆綁到您的運用程式中(下面的例子中的Manifest文檔能夠將該Comctl32.dll捆綁到任何用Visual Studio.Net建立的運用程式中)
2. 更改Stdafx.h文件
3.把這個資源(Manifest文檔)添加到您的可執行文檔並進行重建
2. 更改Stdafx.h文件
3.把這個資源(Manifest文檔)添加到您的可執行文檔並進行重建