关于edit控件,一个很菜的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:40:26
在对话框的OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)中我把edit控件的背景颜色改成绿色.下面是我用的方法:
switch (pWnd->GetDlgCtrlID())
{
case IDC_EDIT1 :
{pDC->SetBkColor(RGB(188,252,191));break;}
default:
break;
}

对于只有一行的eidt是可以的,看不出有问题,但是当我把edit稍为拉宽一点,变成多行显示,这时问题出来了:只能看到多行中的第一行背景颜色是绿色的,下面的都是原来的默认颜色,哪位大哥知道怎么改法,可以多行的背景颜色都改变.
一楼的,勉强可以吧,但是还有点小问题,就是最后一行还保留着原来背景颜色,也就是说,如果最后一行的高就不满一行高(假设只有默认的1/2高吧),那么那1/2高的就是原来的背景颜色了.

你的控件是什么类型的?
如果你重载了OndrawItem函数
不行就试试
CRect rc = lpDrawItemStruct -> rcItem;
pDC->FillSolidRect( rc, m_cButtonColor );
==========================================
试试
CRect rc;
GetClientRect(rc);
pDC->FillSolidRect(&rc, RGB(188,252,191) ); // 设置颜色