Pre_point=point;
CPen pen,old_pen;
pen.CreatePen(PS_SOLID,0,RGB(255,0,0));
   CClientDC dc(this);
    dc. SelectObject(pen);
if(drop)
{
dc.MoveTo (point);
dc.LineTo (point/*+CPoint(0,point.y+1)*/);
}
之前未注释:

解决方案 »

  1.   

    你代码写哪的?OnDraw里?还是mousemove?画单个点,你还不如SetPixel呢
      

  2.   


    void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) 里
      

  3.   

    LineTo是由绘图起始点开始画线,你上面的起始点到结束是同一个点,当然不行了。
      

  4.   

    专业的用SetPixel拉LineTo和MoveTo到底可不可以,楼主可以自己测试下
    这样测试
    诸如要在(X,Y)点绘制一个点,先用SetPixel画一个点。查看下位置
    然后使用
    MoveTo(X-1,Y);LineTo(X+1,Y);
    查看效果是不是一个点,还是3个像素的直线。我没测试过,不过楼主可以尝试下,不要大家说不可以就信。虽然楼上几位也是我很崇拜的大牛
      

  5.   

    楼主应该是想画点,可能是觉得LineTo当起始点和结束点相同时就会画出一个点来,我觉得应该不行,不过确实没试过。
      

  6.   

    Draws a line from the current position up to, but not including, the point specified by x and y (or point). 
      

  7.   

    我试了一下moveto和lineto。能够绘直线,不知道对你有用不。
    private:
    CPoint startPoint;
    ==================
    上面是在View类中添加的成员变量
    void CChapter4_testView::OnLButtonDown(UINT nFlags, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    startPoint = point;
    CView::OnLButtonDown(nFlags, point);
    }==================
    上面是新添加的一个鼠标左键按下判断直线初始点void CChapter4_testView::OnLButtonUp(UINT nFlags, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    CClientDC dc(this);
    dc.MoveTo(startPoint.x, startPoint.y);
    dc.LineTo(point.x, point.y); CView::OnLButtonUp(nFlags, point);
    }
    ============================
    上面就是利用moveto和lineto实现画直线了