6

ダイアログ ボックス アプリケーションで CMFCButton を Vista スタイルで表示できないようです。MFC Feature Pack で VS2008 を使用しています。

私の問題を再現するためのいくつかの手順は次のとおりです。

  • 新しい MFC プロジェクトを作成します。
  • ダイアログ ベースのプロジェクトを指定します。
  • メイン ダイアログに 2 つのボタンを追加します。
  • ボタンごとに変数を追加します。変数の 1 つを CButton に、もう 1 つを CMFCButton にします。
  • コンパイルして実行します。

テストアプリの画像 http://img7.imageshack.us/img7/3/testapp.png

ご覧のとおり、CButton には正しいスタイルがありますが、CMFCButton にはありません。

ここで何が欠けていますか?

4

1 に答える 1

9

CMFCButtonにはデフォルトでスタイルが設定されています。ダイアログBS_OWNERDRAWの で削除できます。OnInitDialog()

mfcButton.ModifyStyle(BS_OWNERDRAW, 0, 0);

ただし、所有者の描画スタイルを削除すると、CMFCButton の多くのメソッドが役に立たなくなります (SetTextColor など)。ビジュアル マネージャーを設定することで、現在の Windows テーマを使用してレンダリングするボタンを取得できます。

CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));

これはModifyStyle上記の代わりに行われ、デフォルトのスタイルに適合しながらも新しいレンダリング機能を備えたボタンになります。

于 2009-09-23T12:12:04.917 に答える