我创建了一个类实现画曲线操作,在框架里创建了一个菜单按钮来执行画曲线,可是在窗口变化时曲线不见了,我知道可能是调用OnDraw()函数引起了重绘,所以请问高手、大侠们怎样才能在窗口变化时曲线还存在??????

解决方案 »

  1.   

    是窗口变化时会重绘,OnDraw函数被调用,你可以在OnDraw函数执行画曲线操作,菜单就是一个开关,条件满足就执行画曲线操作,不满足就不执行
      

  2.   

    谢谢,一楼的回复。
    可是我只想通过菜单按钮来执行画曲线,不想再OnDraw()函数里实现画曲线,怎么办啊???
      

  3.   

    我创建了一个类实现画曲线操作,在框架里创建了一个菜单按钮来执行画曲线,可是在窗口变化时曲线不见了,我知道可能是调用OnDraw()函数引起了重绘, 并且我不想再OnDraw()函数里添加画曲线代码,所以请问高手、大侠们怎样才能在窗口变化时曲线还存在??????
      

  4.   

    你可以在WindowProc里处理WM_PAINT,里面的参数hrgnSrc   =   (HRGN)   wParam;就是需要更新的RGN,你可以把你的曲线区域从这个里面裁剪掉,把裁剪后的RGN传给默认消息处理函数。不过ONDRAW和ONPAINT的顺序和关联不知道是如何处理的,自己找找,给你个思路。
      

  5.   

    不要这样去理解画图,你这样思想就是错误的,让你从OnDraw里画图,MFC乃VC的绘图思想:由数据到图形,也就是要想保存图象,必需先保存好绘制出图像的那些数据。
      

  6.   


    总之谢谢你了,只是我做的是把画曲线操作都在一个自定义类里完成的,我不想再OnDraw()里完成,该怎么解决啊,
      

  7.   

    在菜单函数下添加Bool变量,增加判断就可以实现了。