SATOXのシテオク日記

~ふもっふ、ふもふも~

XPスタイルの外観にするには

どんなアプリケーションでもWindowsXPだからといってXPスタイル(LUNA)になるわけではないことはご存知だと思います。
んじゃあ、XPスタイルの外観にするにはどうしたらいいのか。
答えは2つ。
1つ目は、ここに書いてあるXMLファイルをアプリexeと同じ場所に、*.exe.manifestという名前でUnicodeテキストとして保存しておくこと。コレでOK。
でも、別ファイルを一緒に並べとくってちょっとダサイじゃないですか。ってなわけで、2つ目はアプリに埋め込む方法。
Formを表示する前に次のコードを実行します。


.NET Framework
// XPスタイル適用
System::Windows::Forms::Application::EnableVisualStyles();
// 念のため、メッセージを吐き出す
Application::DoEvents();
// フォームの表示など
   :
これだけ。簡単じゃああああないですか(笑)。
で、上記の条件は.NETフレームワークベース用なんですが、じゃあ、Win32環境ではどうするか。
それは次の手順で実現可能なのですわ(嬢)。

Win32用
・先のXMLファイルをmanifest.xmlとし、プロジェクトに追加。
・リソースファイル(*.rc)に以下の行を追加。
 CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "manifest.xml"
・リソースファイル(resource.h)に以下の行を追加。
 #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
 #define RT_MANIFEST 24