我想定时改变static控件的内容,用SetWindowText()来实现,但后来发现第二次调用SetWindowText()的时候前面显示的文字还在,造成两次显示的文字重叠,请问如何在第二次显示之前将 static的内容清空?

解决方案 »

  1.   

    LZ大概是屏蔽了 WM_ERASEBKGND 吧? 或者是自绘时没有填充背景色
      

  2.   

    需要确保你static控件足够大,大到能覆盖两次text的大小,且要禁止他自动调整尺寸
    出现这个问题的可能原因是:第二次设置的text比较短,从而超出区域没有人去重绘它,这是一般需要对话框自己进行一次重绘才行
      

  3.   

    我dialog中OnEraseBkgnd()绘制了一幅图片,所以直接让他return true了
    不过我改了之后还是出现重叠。
      

  4.   

    谢谢二楼,果然是因为自动调整尺寸的问题,选中NoPrefix之后就没有出现重叠的问题
      

  5.   

    那就 SetWindowText后 Invalidate 强制刷新一下