VC++ Static标签实现背景透明!

在消息WM_CTLCOLOR中设定透明效果


if(nCtlColor == CTLCOLOR_STATIC)  //针对所有的标签
{
pDC->SetBkMode( TRANSPARENT );
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
//////////////////////////////////////////////////////////////////////////////////

HBRUSH CMydilog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    int nID = pWnd->GetDlgCtrlID();
pDC->SetBkMode(OPAQUE);
if( nID == IDC_STATIC1) //对指定的控件设属性,你也可以用上面的方法针对所有的标签
{
        pDC->SetTextColor(RGB(0,0,0) );//多此一举,你可以设文字其它的颜色
    pDC->SetBkMode(TRANSPARENT);
return HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
return hbr;
}

 

转自:http://hi.baidu.com/gamevip/blog/item/d06dcc17f285da09c83d6dc3.html

你可能感兴趣的:(c,null,vc++)