MFC-控件-标签-设置背景透明

非 Y 不嫁゛ 提交于 2019-11-30 18:39:34

MFC-控件-标签-设置背景透明

代码块

VS2013编译通过:

//1.添加WM_CTLCOLOR 消息响应函数

//2.在消息响应函数中设置标签背景透明
HBRUSH CDlgVA::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
 HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

 // TODO:  在此更改 DC 的任何特性
 int ID = pWnd->GetDlgCtrlID();
 //判断控件ID为需要设置的标签时
 if (ID == IDC_STATIC2||ID == IDC_STATIC3)
 {
  pDC->SetBkMode(TRANSPARENT); //设置标签背景透明
  return (HBRUSH)GetStockObject(NULL_BRUSH);
 }
 return hbr;
}

//3.如需要修改标签内容,在代码段需添加如下代码
//获取当前标签位置范围
CRect rct;
GetDlgItem(IDC_STATIC3)->GetWindowRect(rct);
ScreenToClient(rct);
//重置标签范围
InvalidateRect(rct, 1);
//设置标签内容
m_CurrPath.SetWindowTextW(szSubPath);
//更新窗口信息
UpdateWindow();

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!