如何清除窗体背景上已绘制的内容!在背景上已绘制了一个表格,现在表格大小改变了,重新绘制后,原表格还在,两叠加在一起!且绘制过程是在OnPaint()中根据变量完成的!

解决方案 »

  1.   

    建个刷子,用Rectangle之类的函数把整个表格刷掉。
      

  2.   

    InvalidateRect(hTableWnd, &rcTable, TRUE)
      

  3.   

    绘制过程是在OnPaint()中根据变量完成的,那么怎么可能会出现 两表格叠加 ?
    在OnPaint()之前系统是会先响应OnEraseBkgnd消息将窗口背景全部清空的,而你这里的原表格居然还在,是不是你哪个地方没处理好?而不是要去 “如何清除窗体背景上已绘制的内容!”
      

  4.   

    我的做法是在OnPaint()中,画自己的东西之前,先绘制一幅背景,我用bitmap图片填充的。
    然后再在上面绘制其他的内容。这样每次调用Paint的时候就会先用背景图片覆盖。我在OnEraseBkgnd()中把默认调用的基类函数注释掉了,返回真或者假都行,不然会闪