У меня есть CDialg и CEdit Control в диалоге. Итак, для рисования элемента управления CEdit без подкласса CEdit Class я использовал CDialog::OnCtlColor
как это.
if( nCtlColor == CTLCOLOR_EDIT )
{
pDC->SetBkColor(RGB(200, 255, 200));
}
Но, как вы можете видеть, он пропускает некоторую область поля для редактирования.
Как я могу нарисовать это целое окно Rect of CEdit?
Вам также необходимо вернуть кисть правильного цвета, поэтому создайте кисть в конструкторе диалогов
#define EDITCOLOR RGB(200, 255, 200)
m_brEdit.CreateSolidBrush(EDITCOLOR);
и в OnCtlColor()
функция,
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_EDIT)
{ pDC->SetBkColor(EDITCOLOR);
hbr = m_brEdit;
}
return hbr;