そういえば、VS2005SP1では」、マニュフェストが初期状態なんですよねぇ。サイドバイサイドが使える反面、初期状態でどのコモンコントロールを使用するかが定義されていないと、Windows XP / VISTAのビジュアルスタイルが標準でつかえないんです、、orz
そこで、PS3FreePopsのソースより、マニフェストの埋め込み部分のSSとサンプルコードをのせておきます。マニフェストはプロジェクト新規作成では、作成されてもソリューションエクスプローラに見えていないので、ドラッグ&ドロップ。そして以下のようなコードを追加します。
※タグとして認識されないように、半角SPがはいっています。
この他にも、「IProgressDialog」をCOMから生成してくるというという方法などもあるようですが、そこまでしなくてもマニフェストでコモンコントロールを指定するだけで派生させたりしないでつかえるのだから便利ですよね。
しいて言うなら、マニフェストを編集するためのツールをVS2005SP1にはつけてほしかったな~。テキストではなく、コモンコントロールなどはわかりやすいステップバイステップのWizardがほしかったなとおもいますた。
そうそう、このマニフェスト埋め込んだバージョンのPS3FreePops34は、つぎの公開での予定です。現在配布中のものには含まれておりません。ソリューション中には含まれていますので、マニフェストにコード追加してみて試してみるのもよいかも?(ぉぃ
そうそう、標準ではソリューションのリンクオプションで「マニフェストを生成する」にYESが入っていますが、これをNOにしないと、せっかく編集したマニフェストファイルが上書きされます。
まぁ、はじめだけ生成してもらって、ほかの場所にコピーしてからソリューションに追加すればいいわけですが・・・w
そうそう、したのSSでは、ソリューションに含めていますが、これは編集を容易にするためです。実際に埋め込む位置は、リソースです。でないと、プロジェクトをビルドしたときに、マニフェストが埋め込まれない場合があります。
< ?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="Microsoft.Windows.YourApplicationNameHere"
type="win32"
/>
< 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>
2007/06/20 微妙に表記を修正