Windows XP の Luna スタイルに対応しよう

起動が速い Windows 2000 こと Windows XP は新しい Look & Feel を持っています。
対応していないと、見た目的に浮いた存在になってしまうかもしれません。
ですが OwnerDraw 等をしていなければさくさくっと対応できてしまうのでしてしまおうという話です。

まず 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="CompanyName.ProductName.YourApp"
  type="win32" />
<description>Description</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*" />
    </dependentAssembly>
</dependency>
</assembly>

こんな感じのテキストファイルを作り YourApp.exe.manifest という名前で保存します。
いうまでもなく YourApp.exe.manifest の YourApp の部分は実行ファイルの名前に置き換えてください。
manifest ファイル中の CompanyName.ProductName.YourApp の部分を書き換えるのは構わないのですが、文字コードは先頭で指示されている通り UTF-8 でないといけないことにご注意。
後は YourApp.exe.manifest を実行ファイルと同じディレクトリに置いておくだけで OK です。

・・・ですが、実行ファイルに含めたいという人は以下の内容の manifest.rc を作ります。

#define CREATEPROCESS_MANIFEST_RESOURCE_ID       1
#define RT_MANIFEST                             24
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST  "YourApp.exe.manifest"

その後にプロンプトからコンパイルして manifest.res を生成します。

>brcc32.exe manifest.rc

後はプロジェクトファイルに

{$R manifest.res}

と書けばおしまいです。


Return index page