| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 625 人关注过本帖
标题:关于更改组框背景出现的问题
取消只看楼主 加入收藏
邵帅
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:20
帖 子:174
专家分:505
注 册:2012-8-27
结帖率:78.26%
收藏
 问题点数:0 回复次数:0 
关于更改组框背景出现的问题
发现用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 编辑 ]
2014-05-21 16:54
快速回复:关于更改组框背景出现的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034720 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved