我在对话框上用TextOut()输出数据比如778
然后过一会儿在在相同的坐标位置输出数据如76
这时候显示的是768我想这是因为在原地方画上去的是覆盖上的
并没有把原来的清除掉以后在画的
我想问怎样能把原来的数据不显示了变成76呢
最好是在不重画背景的条件下只改变化的部分
谢谢!

解决方案 »

  1.   

    简单一点这样做:
    CWnd* pWnd=this->GetDlgItem(IDC_STATIC);
    pWnd->SetWindowText(str);
      

  2.   

    Invalidate()
    让他先重绘一下,再画
      

  3.   

    我也碰到过类似的问题:我是在视类中输出鼠标的坐标值的。先输出空格数大于你的最大的数据的位数后再输出需要输出的数据。Invalidate()会刷新屏幕闪烁很厉害。
      

  4.   

    格式化输出,保证每次输出的数字长度一致即可.
    CString str ;
    str.Format( "Num: %-3d", 76 ) ;
    dc.Textout( x, y, str ) ;