关于更改组框背景出现的问题
发现用VC做界面遇到好多问题。问题描述:为了更改组框的背景,重载OnCtlColor函数,在里面改变组框的代码如下:
HBRUSH hbr = CDialog::OnCtlColor(pDC,pWnd, nCtlColor);//先改变父窗口的默认背景
int id=pWnd->GetDlgCtrlID();
if(id==IDC_GROUP)//组框
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,192));
CRect rc;
m_group.GetClientRect(&rc);
pDC->FillSolidRect(rc,m_color);//green
return m_brush;
}
return m_brush;
由于组框里面还有标签和编辑框,在OnCtlColor改变他们的背景颜色的代码如下:
switch(nCtlColor)
{
case CTLCOLOR_STATIC: //对所有静态文本控件的设置
//设置背景为透明
//pDC->SetBkMode(TRANSPARENT);
pDC->SetBkColor(RGB(192,192,192));
pDC->SetTextColor(RGB(160,0,160)); //设置字体颜色
return m_brush;
break;
case CTLCOLOR_EDIT://编辑框
// pDC->SetBkMode(TRANSPARENT);
CRect rc;
GetDlgItem(id)->GetClientRect(&rc);
pDC->FillSolidRect(rc,RGB(255,255,255));//编辑框背景
pDC->SetTextColor(RGB(0,0,192)); //设置字体颜色
return m_brush;
break;
}
效果图如下:
问题是当单击编辑框时,组框里面的控件都消失了,如下图:
求解答,如果我描述的不仔细,请指出,或联系我15290873633或qq 981815146.
急!
[ 本帖最后由 邵帅 于 2014-5-21 17:40 编辑 ]