能不能在单文档中,画出一个圆,而在ondraw()调用后画出一个别的图形后,这个圆还在??
如果能的话,怎么实现呢?请教各位好心人了!谢谢

解决方案 »

  1.   

    绘图的操作最好都放在OnDraw函数里去做
      

  2.   

    楼主,可以的,但有前提.
    你这样问,应该是,你发现不可以.你的情况应该是,发现执行完OnDraw里画的图后,原来画的就不见了.正常情况下,窗口重画时,会调用OnDraw.但也会调用OnEraseBkgnd去清背景.
    OnDraw其实并不会擦你原来画的东西,是其他的动作在擦.我测试了一下,OnEraseBkgnd()时什么也不做,调用OnDraw是不会擦之前画的东西的.但正常的程序,应该如楼上的建议,想一直存在的画图动作都要放在OnDraw()里.
    在OnEraseBkgnd()里动作其实并不是正规做法,这个函数有其他的用途.如贴背景那些.
      

  3.   

    放在OnDraw()函数中,或者鼠标事件中吧,用下面的画刷吧
      

  4.   


    CClientDC dc(this);
           CPen pen(m_nLineStyle,m_nLineWidth,m_color);
    dc.SelectObject(&pen);
    CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
           dc.SelectObject(pBrush);
      

  5.   

    只有在OnDraw中的才会保留,鼠标事件中怎么可能?