如何使我的CStatic object 背景颜色和窗口的颜色一致,我窗口的颜色是白色的?

解决方案 »

  1.   

    HBRUSH CCtrlPanel::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    { int ctlId;
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    ctlId=pWnd->GetDlgCtrlID() ;
    if(nCtlColor == CTLCOLOR_STATIC) 
    {
    pDC->SetBkMode(TRANSPARENT); //设置背景透明,这样,输出字符的时候就
    //是所谓的空心字,而不是有白的底色
    pDC->SetTextColor(RGB(255,255,0)); //改变字体的颜色

    hbr = HBRUSH(GetStockObject(HOLLOW_BRUSH));

    } // TODO: Change any attributes of the DC here

    // TODO: Return a different brush if the default is not desired
      
    return hbr;
    }
      

  2.   

    我是想让static object 的背景颜色也变成白色的,因为建立的时候是灰色的。
      

  3.   

    请问如风,pDC是什莫类别?
    如果是CDC class的。怎模使用?
      

  4.   

    这里找不到你满意的答案吗?来这里试试!
    这里有问必答
    http://systemer.51.net/cgi-bin/leoboard.cgi
    希望你能在这里找到你满意的答案!
      

  5.   

    rigel 能说的具体一点吗?
      

  6.   

    映射WM_CTLCOLOR消息,在对应的处理函数中修改
    HBRUSH CCtrlPanel::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor == CTLCOLOR_STATIC) 
    {
    pDC->SetBkMode(TRANSPARENT); 
                      pDC->SetTextColor(RGB(255,255,0)); 
    hbr = HBRUSH(GetStockObject(WHITE_BRUSH
    ));//改变背景色

    }
    return hbr;
    }