基于对话框的程序,对话中导入背景图片,现在拖动一个groupbox控件,怎么设置字体透明,并可以修改字体的大小,颜色。
如下图:(怎么修改“用户选择”字体透明。)
望,高手们帮忙看看,谢谢!部分代码:
HBRUSH CTestUserComboxDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO:  在此更改 DC 的任何属性 // TODO:  如果默认的不是所需画笔,则返回另一个画笔 if(nCtlColor == CTLCOLOR_STATIC || nCtlColor == CTLCOLOR_BTN || pWnd->GetDlgCtrlID() == IDC_STATIC)
{
// 背景色透明
pDC->SetBkMode(TRANSPARENT);
// 返回透明画刷
return (HBRUSH)GetStockObject(NULL_BRUSH);
} return hbr;
}

解决方案 »

  1.   

    if (pWnd->m_hWnd==m_Group.m_hWnd) 
    {
    CRect rc;
    m_Group.GetClientRect(&rc);
    pDC->FillSolidRect(rc,RGB(0,255,255));// blue
    // Set the background mode
    pDC->SetBkMode(TRANSPARENT);
    // Set the text color
    pDC->SetTextColor(RGB(255,255, 255));// white
    // Return our CBrush object
    hbr = 0;//m_brushRed;//red
    }
      

  2.   

    //改变字体颜色用
    pDC->SetTextColor(RGB(255,0,0));
    //字体大小直接在对话框上修改对话框的字体属性。也可以在OnCtlColor处理中自定义字体
    另外以上代码,在VC6中可以修改实现字体透明的
    if(nCtlColor == CTLCOLOR_STATIC  && pWnd->GetDlgCtrlID() == IDC_STATIC)
        {
            // 背景色透明
            pDC->SetBkMode(TRANSPARENT);
           pDC->SetTextColor(RGB(255,0,0));//红色字体
            // 返回透明画刷
            return (HBRUSH)::GetStockObject(NULL_BRUSH);
        }
      

  3.   


    pWnd->m_hWnd==m_Group.m_hWnd 这个判断条件中的m_Group在头文件中定义:
    GroupBox m_Group;  ???
      

  4.   

    m_groupFont.CreateFont(60, 20, 0, 0, 500,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS, _T("楷体")); 
    m_groupbox.SetFont(&m_groupFont);