如题

解决方案 »

  1.   

    如何实现图形的拉伸显示效果
       (1)在视图类的头文件中声明一个public型的成员变量:CRectTracker m_Tracker;
       (2)在视图类的实现文件中的构造函数中初始化有关变量,如下代码:
            CTestView::CTestView()
    {
    m_Tracker.m_rect.SetRect (0, 0, 100, 100); 
    m_Tracker.m_nStyle=CRectTracker:: resizeInside|CRectTracker:: dottedLine; 
    }
       (3)在视图类的OnDraw()函数中画一个椭圆和跟踪矩形,如下面的代码:
    void CTestView::OnDraw(CDC* pDC)
    {
    CTestDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    CBrush brush (RGB (0, 0, 255)); 
    CBrush* pOldBrush=pDC->SelectObject (&brush); 
    CRect rcEllipse; 
    m_Tracker.GetTrueRect (rcEllipse); 
    pDC->Ellipse (rcEllipse); 
    m_Tracker.Draw (pDC); 
    pDC->SelectObject (pOldBrush); 
    }
       (4)在视图类中添加WM_LBUTTONDOWN消息处理函数,如下面的代码所示:
    void CTestView::OnLButtonDown(UINT nFlags, CPoint point)
    {
    BOOL bResult=m_Tracker.HitTest(point)!=CRectTracker::hitNothing; 
    if (bResult) 
    m_Tracker.Track (this,point,TRUE); 
    else 
    m_Tracker.TrackRubberBand (this,point,TRUE); 
    CView::OnLButtonDown(nFlags, point);
    }