我在对话框上有CDialg和CEdit Control。因此,为了绘制CEdit控件而不对CEdit类进行子类化,我使用了这样的CDialog::OnCtlColor
。
if( nCtlColor == CTLCOLOR_EDIT )
{
pDC->SetBkColor(RGB(200, 255, 200));
}
但正如您所看到的,它省略了编辑控制的一些边缘区域。
如何在整个窗口绘制CEdit的Rect?
答案 0 :(得分:2)
您还需要返回具有正确颜色的画笔,因此请在对话框构造函数中创建画笔
#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;