我写了基于对话框的程序,在程序中打开图片并对图片进行处理得到一些数据,当我把对话框最小化后再最大化,对话框重新初始化之前的图片和数据都不见了,请大家帮帮忙!怎样才能保持图片和数据都存在呢?

解决方案 »

  1.   

    一种可能,你画的图没有全部重画   比如,函数onpaint(),windows会发送WM_PAINT消息,要求程序重画,但是,这时,你有一个图画不是在这个函数中处理,那么,他就不见了...
      

  2.   

    在OnPaint()函数里重绘了图片,发现最小化后再最大化图片依然不见,需要用鼠标点击一下对话框才出现。
      

  3.   

    OnPaint中用CPaintDC dc(this)构造的dc来绘图,不要用其他方式来获取dc。
      

  4.   

    发现用CPaintDC dc(this)的方式获取dc是可以的,但是需要转换坐标m_PictRect在程序中我用Rectangle类型的picture控件来显示图片,首先获取控件DC,然后用Stretch函数显示在控件的m_PictRect矩形内
    如重绘时用CPaintDC dc(this)的方式获取dc,这个dc是对话框的dc而不是picture控件的dc,必须把m_PictRect矩形坐标转换成
    相对对话框的坐标。是不是这样呢?如果不在OnPaint()里重绘图片,最小化后最大化图片不见,但点击一下仍然出现,这是为什么呢?