Windows XP Visual Style の利用

ビジュアル・スタイルといっても、ちょっと聞き慣れない言葉かもしれません。 ですが、あなたのプログラムを最新のプログラムのように見せるためのとても便利な方法・テクニック(?)なので まだ使っていない方はぜひお読みください。

論より証拠。まずはこの二つの画面を見てください。

どこが違うかお分かりになるでしょうか。 上が Windows XP のビジュアル・スタイルを利用した画面で、 下が従来のユーザーインターフェイスです。 ここでは、自分で作ったプログラムを、上のような新しいスタイルのインターフェイスにするためには どうすればよいか、という方法を説明します。

実は、ビジュアルスタイルを適用するためにはコードの変更は全く必要ありません。 EXE ファイルと同じフォルダに、次のマニフェストファイルを置くだけで OK です。

マニフェストファイルのファイル名は、exe_file_name.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="Oyama_Keisuke.XP_Visual_Style_Test.App1"
    type="win32"
  />
  <description>これは XP Visual Style のテストプログラムです</description>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        processorArchitecture="X86"
        publicKeyToken="6595b64144ccf1df"
        language="*"
      />
    </dependentAssembly>
  </dependency>
</assembly>

赤字で示したところだけ、ご自分のプログラムに合わせて適当に書き換えてください。

理由は次の通りです。通常、何も設定しないと普通のユーザーコントロール (ボタンや エディットコントロールなど) は user32.dll で定義されたウィンドウを、コモンコントロールは ComCtl32.dll バージョン 5 で定義されたウィンドウを使用します。それが従来のウィンドウ スタイルです。上記のマニフェストファイルは、バージョン 6 の ComCtl32.dll を使うように Windows に指示します。マニフェストファイルを配置することによって、バージョン 6 の ComCtrl32.dll が使用されますが、これはユーザーコントロール及びコモンコントロールの両方を 含みます。このため、ボタンやプログレスバーの表示が変わる、ということになります。

リソースにマニフェストを配置する方法:
マニフェストはリソースに含ませることも可能です。Windows はプログラム起動時に EXE ファイルと同一フォルダにあるマニフェストを検索し、それが存在する場合はそれを 使用します。もし存在しない場合には、リソースファイルの中にあるマニフェストを検索します。 リソースタイプは RT_MANIFEST です。

サンプルコードのダウンロード [xpvs.zip]

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説