您的位置:首页 > 编程语言 > C语言/C++

VC++ MFC 中动态更改透明背景的静态文本时重叠现象(尤其是界面设置了背景图片时)

2013-08-26 17:21 681 查看
在公司做项目的时候,今天遇到标题中的那个问题,经过问同事和谷歌,用了很多方法,现把最好的方法总结如下:

// 改变静态文本(背景透明)的内容,并修正背景重叠的现象
void CClientDlg::ChgStaticText(CStatic *cTxt, const CString sContect)
{
cTxt->SetWindowText(sContect);
// 重绘 文本控件
CRect rect;
cTxt->GetWindowRect(&rect); // 只局部刷新
CWnd *pParent = cTxt->GetParent();
if (pParent)
{
pParent->ScreenToClient(&rect); // 把屏幕坐标转换为窗口坐标
pParent->InvalidateRect(&rect); // 更新矩形区域(重绘)
}
}

// 我把方法封装起来了,这样可以多次调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vc++ mfc C++ 控件 Static Text