您的位置:首页 > 其它

VC Static 背景图 文字刷新问题 解决方法

2014-08-31 03:34 274 查看
今天遇到Static 加背景图刷新问题。

m_pBitmap->LoadBitmap(bmpID);
......
pOldBitmap = memDC.SelectObject(m_pBitmap);
memDC.SetBkMode(TRANSPARENT);
......
memDC.TextOut(0,12,strText);


然后刷新总是出问题。文字叠加。显示变“脏”。

类似问题帖子:http://bbs.csdn.net/topics/320265308#new_post 没有发现正解。

做了很多测试,终于找到问题原因,添加行之有效的解决方法。

void		CColorStatic::InvalidateTransparent()
{
	
	if (m_pBitmap == NULL)
	{
		return;
	} 
	else
	{
		//SetBkMode(TRANSPARENT)时,不重新加载图片,文字会更改m_pBitmap内容,即显示会变"脏"。xy
		m_pBitmap->DeleteObject();
		m_pBitmap->LoadBitmap(m_bmpID);
//以下方法皆不可行。
//		CRect rc;
//		this->GetWindowRect(rc);
//		CWnd *pParent = this->GetParent();
// 		pParent->ScreenToClient(rc);
// 		pParent->InvalidateRect(rc);
// 		pParent->UpdateWindow();
//		pParent->RedrawWindow();
	}
}


每次刷新,调用上面函数即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: