问题是这样的:    我在FormView上放置了一个picture控件,这个控件主要是用来作为显示图像的容器。
    当图像显示完毕后,picture上仍然残留有最后一帧的图像,怎么才能把这最后一帧的图像去掉,使picutre控件保留原来的底色    我发现如果将整个窗体最小化,然后再恢复,那么图像就去掉了    
    于是用spy++看了下窗体最小化的过程,发现有WM_ERASEBKGND消息送出
    我在自己的代码中也送出这个消息,可是图像还在    我也试着SetBkColor,但是都不成功!    请大家看看,有什么方法让picture控件在图像显示完毕后,能恢复原来的底色!

解决方案 »

  1.   

    给PIC控件关联一CStatic类型的变量,
    InvalidateRect或Invalidate一下,
      

  2.   

    UpdateWindow------------------UpdateWindow我已经试过了,不行的------------------
    不太理解 图像显示完毕------------------
    是将图像采集到窗体上,如果停止采集,那么picture上保留有最后一帧图像
      

  3.   

    给PIC控件关联一CStatic类型的变量, 
    InvalidateRect或Invalidate一下,---------------------------------我的pic控件已经关联到一个CStatic变量上了,我也使用了InvalidateRect来强制刷新,可是不行!        m_pic.GetWindowRect(&rc);
           ::InvalidateRect(m_pic.m_hWnd,&rc,1);
      

  4.   

    既然这样那样都不行,不如在资源里做个底色BMP,到最后就显示这个BMP了。
      

  5.   

    用 WM_ERASEBKGND Notification
    重载“CWnd::OnEraseBkgnd ”函数!