注册 登录
编程论坛 VC++/MFC

关于更改组框背景出现的问题

邵帅 发布于 2014-05-21 16:54, 629 次点击
发现用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 编辑 ]
1 回复
1