OrangeMaker_logo
memo アイコン SDK-MFC 備忘録

Windows SDKやMFCに関するメモです。
(記載内容について正しいことを保証するものではありません。MSDN等で確認してください)

CMFCButtonクラスの使い方

2010/9/24 作成

mfcのfutureパックで導入されたCMFCButtonクラス(コントロール)のをダイアログベースので設定方法についてメモしておきます。
このクラス(コントロール)は、ツールチップの設定やボタンテキスト色などいろいろと便利に機能が簡単に設定できるのでちょっと使いたくなるコントロールです。

手順は、
1)リソースエディタで、通常のボタンコントロール(CButton)を選択して画面に張り付ける。
※VS2010ではCMFCButtonコンポーネントがツールボックスに表示されますが、これを使用せずに一旦通常のボタンコンポーネント(CButton)を貼り付けます。

2)張り付けたボタンコントロールに変数を割り付ける

3)ソース上で変数の宣言の型をCButtunからCMFCButtonに変更する。このときに#include "afxbutton.h"インクルードも合わせて追加する。
この段階で一応ボタンとして動作しますが、ボタン描画がWiN2K風のボタンになってしまいます。なので、VisualManagerの設定をXXXAppクラスのInitInstance()に追加します。

4)Visualmanagerの設定
 XXXAppクラスのInitInstance()関数に、
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
CMFCButton::EnableWindowsTheming();
を追加します。

さらにこのままだとVisualManagerのインスタンスが解放されないので、最後に,
CMFCVisualManager::DestroyInstance();

ただし、XXXAppクラスがWinAppExクラスを継承している場合はインスタンスの解放は不要です。