静态文本刷新不了的问题

shaowutaojiang 2010-04-07 05:36:25
各位:
我窗口背景是一幅图像,然后我在它上面放了几个标签,让它透明显示文字,结果我发现当要更改标签上的文字时,旧的文字没有擦除,新的文字直接叠加在旧的文字上面,请问怎么才可以擦除旧的文字?
HBRUSH CSetupDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(pWnd->GetDlgCtrlID()==IDC_STATIC_PERCENT)
{
//文字颜色设置为红色
pDC->SetTextColor(RGB(255,255,255));
//设置文字背景为透明
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
return hbr;
}
...全文
54 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-04-15
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
Eleven 2010-04-07
  • 打赏
  • 举报
回复
那是因为你将文字的背景设为透明的了,所以之后显示的文字会叠加显示在先前的文字上。你可以在显示文字之前,先用背景色刷一下,然后在显示文字。
bingying19872008 2010-04-07
  • 打赏
  • 举报
回复
调用EraseBkgnd

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧