0

我在对话框中有 CDialg 和 CEdit 控件。因此,要绘制 CEdit 控件而不使用子类 CEdit 类,我使用CDialog::OnCtlColor了这样的方法。

if( nCtlColor == CTLCOLOR_EDIT )
{
    pDC->SetBkColor(RGB(200, 255, 200));
}

但正如您所看到的,它省略了编辑控件的一些边距区域。

如何绘制 CEdit 的整个窗口矩形?

图片

4

1 回答 1

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;
于 2014-11-01T08:31:02.717 回答