在Doc类中添加CRectTracker m_recTk;
在View类中添加
bool m_btnPressed;
CPoint m_endP;
CPoint m_startP;
然后:
void CTestView::OnLButtonDown(UINT nFlags, CPoint point) 
{
    m_startP = point ;
m_btnPressed = true ;
CView::OnLButtonDown(nFlags, point);
}void CTestView::OnMouseMove(UINT nFlags, CPoint point) 
{

if(m_btnPressed)
{
   CDC *pDC = GetDC() ;
   CTestDoc *pDoc = GetDocument() ;
   ASSERT_VALID(pDoc) ;
   CRect rect ;
   m_endP = point ;
   rect.SetRect(m_startP,m_endP) ;
   pDoc->m_recTk.DrawTrackerRect(&rect,AfxGetMainWnd(),pDC,AfxGetMainWnd()) ;
   ReleaseDC(pDC) ;
}
CView::OnMouseMove(nFlags, point);
}void CTestView::OnLButtonUp(UINT nFlags, CPoint point) 
{
    m_endP = point ;
m_btnPressed = false;
CView::OnLButtonUp(nFlags, point);
}这是拖动虚线框的绘制方法。现在唯一的问题是,当再拖动绘制过程,你将被绘制的文档最小化,然后最大化,再在上面拖动时,上次产生的虚框没有被擦除,DrawTrackerRect不是在绘图的时候自动擦除的吗??
麻烦给出解决的方法。