[MFC]背景色の設定2 | Assertion Failed!

[MFC]背景色の設定2

昨日 に続いてこんなやり方もあった。

こっちのほうがよいと思う。


・ダイアログクラスにCBrushクラスのメンバ変数を持たせる。

・OnInitDialogで以下のように初期化


BOOL CSampleDlg::OnInitDialog()
{

 ・・・
 // TODO: 初期化をここに追加します。
 m_Brush.CreateSolidBrush(RGB(0,0,0));

 return TRUE; // フォーカスをコントロールに設定した場合を除き、TRUE を返します。
}


HBRUSH CSampleDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

 // TODO: ここで DC の属性を変更してください。
 switch(nCtlColor)
 {
 case CTLCOLOR_DLG:
  return (HBRUSH )m_Brush;

 default:
  break;
 }
 // TODO: 既定値を使用したくない場合は別のブラシを返します。
 return hbr;
}