|
Windows XPスタイルの外観にする
Visual Studio 2005でWindowsアプリケーションを作成すると、デフォルトではクラシックスタイル(Windows2000の外観)になります。これをWindows
XPスタイル(Luna)の外観にするにはどうすればよいでしょうか?

XPスタイルの外観にするためには、Windows XPでバージョンアップされた、Windowsコモンコントロール(ComCtl32.dll)のバージョン6以降を使う必要があります。
これを使うためには、マニフェストファイルを作り、プロジェクトに組み込みます。マニフェストファイルは、アプリケーションの依存関係などを記述するXML形式のファイルです。
では、実際にやってみましょう。今回は「MFC編
ラジオボタンの基本」で作ったダイアログベースのアプリをXPスタイルにしてみます。まず、マニフェストファイルを作ります。ファイル名は、アプリケーション名
+ 拡張子 + .manifestという名前にします。今回の場合はRadio.exe.manifestになります。
マニフェストファイルの内容は、次のように記述します。
<?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="Radio.exe"
/>
<description>.NET control deployment tool</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
|
最初の<assemblyIdentity>タグのname属性にはアプリケーション名を入れます。processorArchitecture属性は、64ビットWindowsの場合は"IA64"にします
。<dependency>タグのところで、コモンコントロール、バージョン6を使うように指定しています。
このファイルを、アプリケーションの実行ファイルと同じところに置いておけば、それだけでアプリケーション実行時に読み込まれて、XPスタイルの外観になります。(当然、Windows
XPで実行する必要があります。)
こうするとアプリケーション本体とマニフェストファイルの2つをセットにして配布しないといけませんが、次のようなやり方で、マニフェストファイルを実行体に含めることができます。
Visual Studio 2005のプロジェクトのプロパティで、「構成プロパティ」→「マニフェストツール」→「入力と出力」→「追加のマニフェストファイル」のところに、作成したマニフェストファイルを指定します。フルパスで記述してもよいですが、マクロを使って書くこともできます。

これで、プロジェクトをビルドすると、マニフェストファイルが実行体に組み込まれます。もしパスが間違っているか、XMLの解析でエラーが発生すると、
general error c1010070: Failed to load and parse the manifest.
|
というエラーが出るので、ファイルが指定した場所に存在するか、XMLの構文が間違っていないか確認しましょう。
ちなみに、作成した実行体をWindows XP上で実行するとXPスタイルで表示されますが、Windows
2000上で実行すると、ちゃんとクラシックスタイルで表示されます。
|