当我用lineto函数画直线时,若设置象素颜色是画笔颜色的话,那么当我移动鼠标时,沿途都会画出许多线,但我只想画出当我放下鼠标时的那条线,怎么办?
(我以在鼠标移动和鼠标按下,鼠标放开这些消息的函数中写好了相应的代码)
(我知道有一种方法可以实现,但那种方法不可以得到画笔的颜色。)
谢谢各位高手!谢了!

解决方案 »

  1.   

    这个问题,关键在于你要好好的自己仔细琢磨,好好学习。
    你可以到我的个人主页上下载图形程序,对你的学习会有一些帮助。============================================================================
    提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
    http://alphasun.betajin.com/                            给我发信息请附带原帖地址
    http://www.betajin.com/alphasun/index.htm
    DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
      

  2.   

    MoveTo
    每次在画线时要清除上一次画出的直线
      

  3.   

    MoveTo
    每次在画线时要清除上一次画出的直线
      

  4.   

    MoveTo 
    大家说的都对BOOL MoveToEx(HDC hdc,
    int X,
    int Y,
    LPPOINT lpPoint
    );
      

  5.   

    CClientDC dc(this);
    OnPrepareDC(&dc);
    dc.DPtoLP(&point);
    dc.SetROP2(R2_NOT);
    dc.MoveTo(m_PointOrigin);
    dc.LineTo(m_PointOld);
    dc.SetROP2(R2_COPYPEN);
    dc.MoveTo(m_PointOrigin);
    dc.LineTo(point);
      

  6.   

    在处理OnMouseMove消息中
      CClientDC dc(this);
      dc.SetROP2(R2_NOT);  
      dc.MoveTo(ptOld);
      dc.LineTo(ptNew);  
      dc.MoveTo(ptOld);
      dc.LineTo(point);
      ptNew = point;
    在处理OnLButtonUp消息中末尾加上Invalidate(),即可实现对所画图形进行上色。
      

  7.   

    你可以用GDI生成一只笔,画线就可以。记住要释放笔。           
                 CPen pen1,*oldpen1;
        pen1.CreatePen(PS_SOLID,Pen_Width,RGB(200,200,200));
        oldpen1=pDC->SelectObject(&pen1); 
        pDC->MoveTo(point);
        pDC->LineTo(flag_countpoint1[1]);
       flag_countpoint1[1]=point;
                 pDC->SelectObject(oldpen1);
      

  8.   

    http://expert.csdn.net/Expert/topic/1748/1748560.xml?temp=.9633448
      

  9.   

    有什么方法可以擦除上一次所画的彩色的线吗?
    我想实现在鼠标移动时,所画的线既有颜色。以下代码是我的设想,但不对。在OnMouseMove(UINT nFlags, CPoint point) 中有以下代码:
    CClientDC dc(this);
    OnPrepareDC(&dc);
    dc.DPtoLP(&point);
    dc.SetROP2(R2_NOT);
    CPen pen1,*oldpen1;
        pen1.CreatePen(PS_SOLID,1,RGB(0,200,200));
    oldpen1=dc.SelectObject(&pen1);
    dc.MoveTo(pointOld);
    dc.LineTo(pointNow);
    dc.SetROP2(R2_COPYPEN);
    dc.MoveTo(pointOld);
    dc.LineTo(point);
    dc.SelectObject(oldpen1);
    pointNow=point;