首先我用PIC控件放了个背景图片,然后上面的空间有静态文本的有check-box的,静态文本的通过下面的方法实现了背景透明,但是有两个check-box的就不会透明,而是变成了黑色的,请问又会的吗?怎么解决呢?
代码如下:HBRUSH CLogInDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CUPEMSDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO:  在此更改 DC 的任何属性 if(pWnd->GetDlgCtrlID()==IDC_LOGIN_USER_NAME_STATIC)
{

pDC->SetBkMode(TRANSPARENT);      //属性设置为透明
return (HBRUSH)::GetStockObject(NULL_BRUSH); //不返回画刷
}
if(pWnd->GetDlgCtrlID()==IDC_LOGIN_PWD_STATIC)
{
pDC->SetBkMode(TRANSPARENT);      //属性设置为透明
return (HBRUSH)::GetStockObject(NULL_BRUSH); //不返回画刷
}
if(pWnd->GetDlgCtrlID()==IDC_SERVER_ADDRESS_STATIC)
{ pDC->SetBkMode(TRANSPARENT);      //属性设置为透明
return (HBRUSH)::GetStockObject(NULL_BRUSH); //不返回画刷
}
if(pWnd->GetDlgCtrlID()==IDC_STATIC)
{ pDC->SetBkMode(TRANSPARENT);      //属性设置为透明
return (HBRUSH)::GetStockObject(NULL_BRUSH); //不返回画刷
}
if(pWnd->GetDlgCtrlID()==IDC_STATIC_LOG_LEVEL)
{ pDC->SetBkMode(TRANSPARENT);      //属性设置为透明
return (HBRUSH)::GetStockObject(NULL_BRUSH); //不返回画刷
}
if(pWnd->GetDlgCtrlID()==IDC_LOGIN_IS_REMEMBER)
{ pDC->SetBkMode(TRANSPARENT);      //属性设置为透明
return (HBRUSH)::GetStockObject(NULL_BRUSH); //不返回画刷
}
if(pWnd->GetDlgCtrlID()==IDC_DYNAMTIC_LOG)//check-box 结果运行后居然是黑色的一块
{ pDC->SetBkMode(TRANSPARENT);      //属性设置为透明
return (HBRUSH)::GetStockObject(NULL_BRUSH); //不返回画刷
}
// TODO:  如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}

解决方案 »

  1.   

    HBRUSH CDlgCreateLec::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CBCGPDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
    switch(nCtlColor)
    {
    case CTLCOLOR_STATIC:
    pDC->SetBkMode(TRANSPARENT);
    return (HBRUSH)GetStockObject(HOLLOW_BRUSH);
    default:
    return CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
    }
    // TODO: Return a different brush if the default is not desired
    return hbr;
    }
      

  2.   

    5楼的可以实现check控件背景透明,但是对于slider control没用
      

  3.   

    我在工程中试了不行的,我的界面是采用Xtream美化工具做美化,登陆界面我为了好看,贴了张图,然后上面的按钮除了静态文本 其他的都透明不了(透明背景色为贴图),check-box,下拉框,Ip地址框都不能透明。
      

  4.   

    Xtream美化工具 .估计是这个美化工具的问题
      

  5.   

    1.重新继承基于CButton类的新类CMyCheckBox.
    2.在类中重载PreSubClassWindow()这个函数...在函数中添加:ModifyStyle(0,BS_OWNERDRAW);
    3.在类中重载DrawItem(..)这个函数...在函数中什么也不要加...
    4.在函数中添加WM_PAINT消息...在这个消息的消息响应函数中添加你要绘制CheckBox的代码
      

  6.   

    http://blog.csdn.net/zhoujielunzhimi/article/details/8111120
    各位记得先百度,再csdn博客搜索,然后在发帖啊