在给控件添加背景以后,为了让整个图片显得更加美观,需要我们将static文本的背景设置为透明,下面是设置透明的方法:
/*设置控件背景透明*/ HBRUSH CTOOLDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor == CTLCOLOR_STATIC ) { pDC->SetBkMode(TRANSPARENT);//设置背景透明 pDC->SetTextColor(RGB(255,255,0));//设置字体为黄色 return (HBRUSH)::GetStockObject(NULL_BRUSH); }
// TODO: 如果默认的不是所需画笔,则返回另一个画笔 return hbr;
}
附上自己实例代码:
HBRUSH CwanshangDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if (pWnd->GetDlgCtrlID() == IDC_STATIC) { pDC->SetBkMode(TRANSPARENT); //设置背景为透明 hbr = HBRUSH(GetStockObject(HOLLOW_BRUSH)); return hbr;; } // TODO: 在此更改 DC 的任何特性 // TODO: 如果默认的不是所需画笔,则返回另一个画笔 return hbr; } 效果图: