编一个SDI程序,利用鼠标画一条直线,按住鼠标左键并拖拽,先画出随鼠标移动的直线,当释放左键后才画出一条真正的直线,像画图中的直线功能一样
最好附加窗口重绘能力 

解决方案 »

  1.   

    思路,按下事件中记录直线第一个点,异动事件中随时更新直线第二个点,抬起事件中保存点信息(链表,数组随便)
    至于绘制 MoveTo,LineTo.....
      

  2.   

    简单的说就把你的点保存到一个vector容器中,vector<POINT> vec;就可以
      

  3.   

    首先在视图类定义成员变量
    CPoint m_ptOrigin;
    bool m_bDragging;
    HCURSOR m_hCross;
    在视图类的构造函数里写
    m_bDragging=false;
    m_hCross=AfxGetApp()->LoadStandardCursor(IDC_CROSS);
    在OnLButtonDown函数里写
     SetCapture();
    ::SetCursor(m_hCross);
    m_ptOrigin//起点坐标//=point;
    m_bDragging=TRUE;在OnMouseMove函数里写
    if(m_bDragging)
    {
       CClientDC dc(this);
       dc.MoveTo(m_ptOrigin);
       dc.LineTo(point);
       m_ptOrigin=point;
    }
    在OnLButtonUp中写
    if(m_bDragging)
    {
        m_bDragging=false;
    ReleaseCapture;
    }你可以参考。