« 2006年3月 | トップページ | 2006年5月 »

VC2005でビジュアルスタイル

VisualC++2005でMFCを使っているといろいろとVC6と違うことがわかる。

一番とまどったのはCStringがMSDNでMFCクラスに出てこないこと!ちゃんとあるけど。位置づけが変わっているんですね。C#も触っているけど .NetFramework2インストールが必須という点がクリアできればC#の方が文字列の扱いが柔軟で使いやすい。C++の時代はフロントエンドアプリとしては終わったのかもしれない。

もう1つとまどったのはビジュアルスタイル(XPのLunaスタイル)がVC++で作成したときに適用されないことがあること。

原因はプロジェクトのプロパティ内の「文字セット」。
デフォルトはUNICODEだけども、これを互換性重視で「設定なし」「マルチバイト~」にしてしまうとビジュアルスタイルが適用されなくなってしまう。

これを回避するには自分でマニフェストを作成してリソースリンクするか「stdafx.h」ファイルを書き換えるかする。個人的にはstdafx.hの書き換えをおすすめします。
方法は簡単、stdafx.hにUNICODE判定コード(#if~#endif)があるのでこれをコメントアウトします。

何でこんなことになっているのかはMSに聞かないとわからないですが、おそらく「VSのプログラム=UNICODE対応アプリ」ということにしたいのかな?

| | コメント (0) | トラックバック (0)

« 2006年3月 | トップページ | 2006年5月 »