我刚学VC++,试图用鼠标在客户区画图,但发现画好的东西只要是一移动窗口或是改变窗口大小就没了。我想这可能是我将有关绘图的代码都写在相应鼠标消息处。但我就想问是不是要想保存画好的图就必须将那些涉及到绘图的代码写在WM_PAINT处才行呢?如果不是,那有有什么解决方法呢?
先谢谢了!

解决方案 »

  1.   

    要用一个结构什么的东东将你的图画保存好,然后在OnDraw中重画出来
      

  2.   

    刚才察看了一下msdn里的onpaint和ondraw,觉得不是很懂,楼上的兄弟能否给出几个例子?
    不胜感激!
      

  3.   

    onpaint和ondraw
    里面的代码会自动重画,不用你管。
    你可以用开关量来控制输出画面的内容。
      

  4.   

    一般写在 OnDraw里面, 比如你想画一条线, 可以这样
    void CTestView::OnDraw(CDC* pDC)
    {
    CTestDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    pDC->MoveTo(100, 100);
    pDC->LineTo(200, 200);
    }
    以后不管你改变窗体什么的, 这条线不会消失
      

  5.   

    也许是我比较笨,也许是我看的东西还太少,请问:
    上面所讲的 CTestView, OnDraw 是不是都是 MFC 里的东东啊?
      

  6.   

    对不起,我是一个刚刚学windows的新手,而且 MFC 还是一点都没接触过,你们所说的我都不大明白。所以请问你们能否用一种近乎于教育白痴的方法告诉我该怎么办好吗?
    谢谢了!