.NET Frameworkなどを意図しない旧来の作り方のWinアプリだと、そのまま実行してもXPスタイルのGUIになりません。
ttPage-Rを使っていて、ふとこのXPスタイルにするにはどうすれば?と思ったので、ちょっと調べてみたら意外と簡単な方法でした。
てことでメモ書き。
最初はCreateWindow()で指定する特別なスタイルとかあるのかな?と思ってたら、manifestファイルを用意すれば良いらしい。
(ただし、適用対象はいわゆるコモンコトロールな部品のみ)
WindowsがXPになって、このmanifestという良く分からんファイルを目にするようになりましたが、こういう使い方するものだったのね。
(他にも色々な属性を指定できるもののようだけど、まぁその辺は必要になったら調べよう ^^;)
で、具体的にはアプリの実行ファイル名に”.manifest”を追加したファイル名で、下記のような内容のテキストファイルを作成する。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>
これを実行ファイルと同じフォルダに置いておくと、そんだけでXPスタイルなGUIになりました。
あと、そうやって別ファイルを用意しなくとも、実行ファイルにあらかじめリソースとして追加しておくと、デフォルトでXPスタイル対応なアプリになってくれるようだ。
これも簡単で、上記の内容をカスタムリソースとしてリソースに追加しておくだけ。
リソースのtypeとIDは、type=24、ID=1としておきます。