已经成功的在CStatic控件(这个控件是嵌入在外面的对话框中的,是子类)上画好了图形,但是对其拖动,改变大小的一系列操作新的图形都能出来,但之前的图形还在显示。我已经在OnPaint()函数中调用了重画函数,也进行了测试,发现是进入了OnPaint里面。但不知为什么没有重画,难道CStatic在wm_paint机制上有问题?OnPaint(){
         CPaintDC dc(this);
         Draw();
}

解决方案 »

  1.   

    擦除背景也试过不行,我先在Draw()之前用刷子也将底色刷了一遍,但之前画的图形还在屏幕上,还有什么原因呢?
      

  2.   

    WM_ERASEBKGND在返回时擦除背景,并画新的试试.
      

  3.   

    OnPaint是Static的OnPaint不是的话会有问题这样
    OnPaint(){
             CPaintDC dc(this);
             Draw(&dc);
    }
    OnPaint里不要用GetDC
      

  4.   

    是在WM_ERASEBKGND消息中用刷子将客户端刷一遍,然后在OnPaint函数中重新画图吗?
      

  5.   

    对goodboyws(深夜不眠者) :
    我是在CStatic::OnPaint()中重画的OnPaint里不要用GetDC是什么意思?