把绘图的代码写在菜单事件中,每次画出图形之后只要移动窗口就不见了,如何解决这个问题

解决方案 »

  1.   

    每当移动图形,系统会触发WM_PAINT消息重新绘制窗口。
      

  2.   

    因此,解决你问题的办法是:
    1、把绘图代码放到响应WM_PAINT的函数中;
    2、或者自己重新绘制你的图形。
      

  3.   

    难道只能写在OnDraw()中? 没有别的方法?
      

  4.   

    对,经绘制的代码写到wm_paint相应函数中
      

  5.   

    能详细一点吗?最好把OnDraw()需要添加的代码栲出来看看
      

  6.   

    在该view头文件中定义:
    CPoint mPointOrign, mPoint;在OnPaint()中
    {
    CPaintDC dc(this);
    CPen pen(0,0,RGB(0,0,0));
    CPen* pOldPen = dc.SelectObject(&pen);
    ddd.SetROP2(R2_NOT);
    dc.MoveTo(mPointOrign);
    dc.LineTo(mPoint);
    }
    在OnLButtonDown中记住两次单击鼠标的坐标,用mPointOrign,mPoint保存
      

  7.   

    在其他的类中响应事件,在OnPaint调用画图的函数,怎么办?
      

  8.   

    Invalidate or InvalidateRect