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

tech2023-10-12  104

1、设置控件的属性Transparent 为True 2、重载OnCtlColor函数

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

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);
最新回复(0)