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

[MFC]背景色の設定

・ダイアログの背景色を変更

ダイアログのリソース画面からプロパティビューを開き、


「メッセージ」→「WM_CTLCOLOR」


からメッセージハンドラ(OnCtlColor)を作成する。


ハンドラ内で、以下のようにコーディング。

(背景黒、スタティック文字白になる。)



HBRUSH CSampleDlg::OnCtlColor(CDC* pDC, CWnd* pWNd, UINT nCtlColor)
{

 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);


 // TODO: ここで DC の属性を変更してください。
 CBrush *m_pBrush = new CBrush(RGB(0,0,0));


 switch(nCtlColor)
 {
 case CTLCOLOR_DLG:
  return (HBRUSH)(m_pBrush->GetSafeHandle());

 case CTLCOLOR_STATIC:
  pDC->SetTextColor(RGB(255,255,255));
  pDC->SetBkColor(TRANSPARENT);
//TRANSPARENTは透過らしい。
  break;

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

}


Visual Studio 2008 Standard Edition
¥28,084
Amazon.co.jp