这个功能该怎么实现???
鼠标左键按下时,如果是第一次按下,则
  dc.MoveTo(当前点.x,当前点.y);
如果是第二次按下时,则
  dc.LineTo(当前点.x,当前点.y);
依次类推,既以当前鼠标按下时的坐标做为新起点,再次按下时作为终点划线,形成一个连续线段。请贴出代码来。

解决方案 »

  1.   

    我来回答,错了拉倒:)
    用一个全局变量(View类的成员变量)DWORD dwMownCun;来指示鼠标点击的次数,每点一次加1
    并判断当他是奇数的时候就MoveTo,否则LineTo
    哈哈哈,不要溢出哦:)
      

  2.   

    可以加一个标志  flag  。当第一次按下(起点)时,令flag=1,以后就可以在单击事件中判断flag是否为1。若为1,则划线并令flag=0, ...
      

  3.   

    参照msdn的例子DrawCli,基本图形的画法都有
      

  4.   

    我想楼主要实现的一个功能就是:将鼠标在二次点击之间的路径形成一条连续的线段。
    这就像在一些图形软件里的鼠标画线(Autocad里的sketch命令)CPoint* pp;
    int num;pp = new CPoint[65535];   //init
    num = 0;LBDown():
    Isrecord = true;   //左键MouseMove():
    if(Isrecord)      //开始记录
      pp[num++] = point;RBDown():         //结束,画线
    Isrecord = false;
    pDC->Polyline(pp,num);
      

  5.   

    按下鼠标第一次时,比如坐标是(0,0)那么移动到MoveTo(0,0)
    按下鼠标第二次时, 。(50,50) 那么画线到 LineTo(50,50),
    并将当前点移动到(50,50)。
    按下鼠标第三次时, 。。 (60,60) 那么再次画线 LienTo(60,60)依次画下去。
      

  6.   

    在leftbuttonup事件里写类似这样就可以简单可以了         
             CClientDC dc(this);
    dc.MoveTo(gPoint);
    dc.LineTo(point);
    gPoint = point;
    这个gPoint是全局的。这样再加一些初始化和出错处理就差不多了吧
      

  7.   

    结束篇
    还是我贴出答案吧。这个问题看似很简单,但还是要亲自动手写代码,
    在写代码的过程中才会发现一些不容易察觉的细节问题。这个问题
    的关键是要注意第一次按下鼠标,和第二次鼠标。
    class CMyView :pbulic CView
    {
     ...
     public:
           CArray <CPoint,CPoint> ptArray;
           DWORD Flag;
    }
    CMyView::CMyView()
    {
     Flag=0;
    }void CMyView::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    ptArray.Add(point);
    CClientDC dc(this);
    CPen *oldPen,newPen;
    newPen.CreatePen(PS_DASH,3,RGB(0,0,255));
    oldPen=dc.SelectObject(&newPen); if(Flag==0) //第一次按下鼠标时
    {
    //画起点
    dc.SetPixel(ptArray[0].x,ptArray[0].y,RGB(0,0,255));
    Flag++;
    return;
    }
     if(Flag==1) // 按下鼠标第二次时
     {      
    //单独处理第一次画线,
     dc.MoveTo(ptArray[0].x,ptArray[0].y);
     dc.LineTo(ptArray[1].x,ptArray[1].y); 
     Flag++;
     return;
     }
    dc.MoveTo(ptArray[Flag-1].x,ptArray[Flag-1].y);
    dc.LineTo(ptArray[Flag].x,ptArray[Flag].y); Flag++;
    dc.SelectObject(oldPen); CView::OnLButtonDown(nFlags, point);
    }
      

  8.   

    按下鼠标第二次时加上dc.SelectObject(oldPen);最好在MouseMove里加上绘制命令,动态显示鼠标移动的过程