다음을 통해 공유


고무 밴딩 및 추적기

추적기와 함께 제공 된 또 다른 기능은 선택할 항목 주위에 크기 조정 사각형을 드래그 하 여 여러 OLE 항목을 선택할 수 있도록 "고무 밴드" 선택 영역입니다.마우스 왼쪽된 단추를 놓으면 항목은 사용자가 선택한 영역 내에서 선택 되 고 사용자가 조작할 수 있습니다.예를 들어, 사용자가 선택한 다른 컨테이너 응용 프로그램에 끌어 놓을 수 있습니다.

이 기능을 구현 해야 일부 추가 코드를 응용 프로그램의 WM_LBUTTONDOWN 처리기 함수입니다.

다음 코드 예제에서는 고무 밴드 선택 하 고 추가 기능을 구현합니다.

else if (m_Tracker.HitTest(point) < 0)
{
   // just to demonstrate CRectTracker::TrackRubberBand
   CRectTracker trackerRubber;
   if (trackerRubber.TrackRubberBand(this, point, TRUE))
   {
      MessageBeep(0); // beep indicates TRUE

      // See if rubber band intersects 
      // with the doc's tracker
      CRect rectT;
      // so intersect rect works
      trackerRubber.m_rect.NormalizeRect();
      if (rectT.IntersectRect(trackerRubber.m_rect, m_Tracker.m_rect))
      {
         // If so, put resize handles on it (i.e. select it)
         if (m_Tracker.m_nStyle & CRectTracker::resizeInside)
         {
            // swap from resize inside to resize outside for effect
            m_Tracker.m_nStyle &= ~CRectTracker::resizeInside;
            m_Tracker.m_nStyle |= CRectTracker::resizeOutside;
         }
         else
         {
            // Just use inside resize handles on first time
            m_Tracker.m_nStyle &= ~CRectTracker::resizeOutside;
            m_Tracker.m_nStyle |= CRectTracker::resizeInside;
         }
         GetDocument()->SetModifiedFlag();
         GetDocument()->UpdateAllViews(NULL);
      }
   }
}

가역 방향 추적기 동안 고무 줄무늬 허용 하려는 경우 호출 해야 CRectTracker::TrackRubberBand 로 설정는 세 번째 매개 변수 TRUE.가역 방향을 허용이 발생 합니다 가끔 기억 CRectTracker::m_rect 반전 됩니다.이 호출 하 여 해결할 수 있습니다 CRect::NormalizeRect.

자세한 내용은 클라이언트 항목 컨테이너사용자 지정 드래그 앤 드롭.

참고 항목

참조

CRectTracker 클래스

개념

추적기: OLE 응용 프로그램에서 추적기를 구현