在做橡皮擦时,如果鼠标移动太快,擦去图象时不能连续,我是响应了mousemove消息,是不是因为在mousemove消息里不能把每一个点的坐标都接受下来呀?
要怎样才能作到在快速移动鼠标时使擦去图象连续?

解决方案 »

  1.   

    请看下面代码:若还有问题请发至:[email protected]
    void CRgnFillView::OnMouseMove(UINT nFlags, CPoint point) 
    {
    CClientDC ddd(this);
    CPen pen(0,0,RGB(0,0,0));
    CPen* pOld=ddd.SelectObject(&pen);
    ddd.SetROP2(R2_NOT);
    if(dwOperation==ID_MOUSE_GETDATA && PushNumb>=1)
    {
    if(m_PointOld!=point)
    {
    ddd.MoveTo(m_PointOrign);//擦除已画的直线
    ddd.LineTo(m_PointOld);
    ddd.MoveTo(m_PointOrign);//画起点到终点的直线
    ddd.LineTo(point);
    m_PointOld=point;
    }
    } CView::OnMouseMove(nFlags, point);
    }