欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MFC 设置static(标签)控件背景透明

程序员文章站 2022-06-14 14:54:08
...

1、设置控件的属性Transparent 为True
2、重载OnCtlColor函数
MFC 设置static(标签)控件背景透明

在该函数体中加入以下代码:

    if(pWnd->GetDlgCtrlID() == IDC_XXXX)     //IDC_DEVICE_STAT为Static控件的ID
    {
        pDC->SetBkMode(TRANSPARENT);   //设置透明属性
        return (HBRUSH)GetStockObject(NULL_BRUSH);   //返回空画刷
    } 

3、解决重影问题,添加刷新局部背景的函数,该函数主要用于单独刷新所选择的控件的区域

    void XXXXDlg::RefreshControl(UINT uCtlID)
    {
        CRect rc;
        GetDlgItem(uCtlID)->GetWindowRect(&rc);
        ScreenToClient(&rc);
        InvalidateRect(rc);
    } 

4、调用并刷新
在设置Static Text内容的地方都以下面的方式调用

m_StaticDeviceStat.SetWindowText("msg");//m_StaticDeviceStat为控件绑定的变量
RefreshControl(IDC_DEVICE_STAT); 
相关标签: MFC