エディットコントロールの背景色の変更は WM_CTLCOLOR をハンドリングする.
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {
HBRUSH hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
switch ( pWnd->GetDlgCtrlID() ) {
case IDC_EDIT1 :
pDC->SetTextColor( テキストのいろ );
pDC->SetBkColor( 背景のいろ );
hbr = CreateSolidBrush( 背景のいろ );
break;
case IDC_OTHER :
break;
}
return hbr;
}
CreateSolidBrush で作成したブラシは エディットボックスがなくなるときに DeleteObject しなければならない.
参照
リードオンリー時の背景色変更
コンボボックスの背景色変更