我在MFC对话框添加了一个picture控件,我设置成rectangle。我在该控件上显示图像,而且在OnPaint()中添加了相应的显示代码,(在OnPaint中调用的是我显示图像的函数)但每次窗口被遮盖或者最小化后,点击窗口,图像瞬间显示就消失了。请问这是为什么?

解决方案 »

  1.   

    我在该控件上显示图像,而且在OnPaint()中添加了相应的显示代码,
    ===========================================================
    谁的OnPaint?
      

  2.   

    将显示代码加入到OnDraw()函数中;
    默认不是调用OnPaint();
    而是OnDraw()
      

  3.   

    既然是对话框,那么调用OnPaint 就是正确的,出现这种问题,有一种可能是:你的OnPaint()函数的是怎么加进去的?在BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之间有没有ON_WM_PAINT()?
      

  4.   


    有啊,按照MFC向导生成的。关键的是我新写了一个显示图像的函数,而在OnPait()中调用了该函数。
    我所用到的CDC是Retangle返回的,在显示函数一结束我就释放了该CDC,这个会不会影响OnPaint()中显示函数呢?我每次缩小后后再打开对话框,里面显示的图片就闪烁了一下。
      

  5.   


    当然是主对话框的OnPaint啦。
      

  6.   

    结贴啦,解决啦。汗,原来是将picture控件设置成rectangle的缘故。