我在对话框中有 CDialg 和 CEdit 控件。因此,要绘制 CEdit 控件而不使用子类 CEdit 类,我使用CDialog::OnCtlColor
了这样的方法。
if( nCtlColor == CTLCOLOR_EDIT )
{
pDC->SetBkColor(RGB(200, 255, 200));
}
但正如您所看到的,它省略了编辑控件的一些边距区域。
如何绘制 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;