void CMainWindow::OnLButtonDown(UINT nFlags,CPoint point) { //以下三个是在CMainWindow中定义 m_ptFrom=point; m_ptTo=point; m_track=TRUE; } void CMainWindow::OnLButtonUp(UINT nFlags,CPoint point){ m_ptTo=point; CPen pen; pen.CreatePen(PS_SOLID,16,RGB(255,0,0)); CClientDC dc(this); dc.SelectObject(&pen); dc.MoveTo(m_ptFrom); dc.LineTo(m_ptTo); m_track=FALSE; } void CMainWindow::OnMouseMove(UINT nFlags,CPoint point){ CDC *pDC; CClientDC dc(this); pDC=&dc; if(m_track){ int nOldMode=pDC->SetROP2(R2_NOT); pDC->MoveTo(m_ptFrom); pDC->LineTo(m_ptTo); pDC->SetROP2(nOldMode); nOldMode=pDC->SetROP2(R2_NOT);//防止线重叠时被擦除
pDC->MoveTo(m_ptFrom);
pDC->LineTo(point);
pDC->SetROP2(nOldMode); m_ptTo=point; } }