在改变窗口大小时 线会有残留,没有擦掉,是不是坐标改变了?
void COpencvView::OnMouseMove(UINT nFlags, CPoint point) 
{
CDC *pDC=GetDC();
pDC->SetROP2(R2_NOTXORPEN); 

CRect r;
GetClientRect(r);

m_point_c=m_point_a;

m_point_a.x=point.x;
m_point_a.y=0;

m_point_b.x=point.x;
m_point_b.y=r.Height();

pDC->MoveTo(m_point_a);
    pDC->LineTo(m_point_b);



pDC->MoveTo(m_point_c);
    pDC->LineTo(m_point_d);
 

m_point_d=m_point_b;
 

CView::OnMouseMove(nFlags, point);
}

解决方案 »

  1.   

    http://hi.baidu.com/starwing/blog/item/b629ba38e72a39c3d56225e7.html
    这是双缓冲的分析
      

  2.   

    新建 文档   最大化 最小化  时都擦不掉...还有根先前画的线
    void CCvtyView::OnDraw(CDC* pDC)
    {
    CCvtyDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);   pDC->SetROP2(R2_NOTXORPEN); 
    pDC->MoveTo(m_point1);
    pDC->LineTo(m_point2);
    pDC->MoveTo(m_point1_old);
    pDC->LineTo(m_point2_old);
    m_point1_old=m_point1;
        m_point2_old=m_point2;
         ReleaseDC(pDC);
    }
      

  3.   

    你的画图最好都放在onpaint中来画,采用双缓冲,这样就不会出现残留,因为每一次画都重新画了