ウィンドウ

 

・Windows XPスタイルの外観にする

 

 

トップページへ戻る

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上で実行すると、ちゃんとクラシックスタイルで表示されます。