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

今天遇到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();
	}
}


每次刷新,调用上面函数即可。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值