MFC 如何去去掉 CStatic的背景色 使CStatic背景透明
动态添加的CStatic的背景色跟我们自绘的窗体颜色不同时就会很难看
如何去掉CStatic控件背景色使之透明
先看原图
在窗体中重载这个消息
源码点这下载
示例代码如下
HBRUSH CSulutionFrm::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CPopUpFrm::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
if (pWnd->GetDlgCtrlID() == IDC_STATIC_UID)
{
pDC->SetTextColor(RGB(0, 0, 0));
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
if (pWnd->GetDlgCtrlID() == IDC_CHK_ISENBALEJS || pWnd->GetDlgCtrlID() == IDC_CHK_ISENBALEDLL )
{
pDC->SetTextColor(RGB(0, 0, 0));
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
最终效果