다음을 통해 공유


CRectTracker 클래스

항목을 다양한 방식으로 표시, 이동 및 크기 조정할 수 있습니다.

구문

class CRectTracker

멤버

공용 생성자

속성 설명
CRectTracker::CRectTracker CRectTracker 개체를 생성합니다.

공용 메서드

이름 설명
CRectTracker::AdjustRect 사각형의 크기를 조정할 때 호출됩니다.
CRectTracker::D raw 사각형을 렌더링합니다.
CRectTracker::D rawTrackerRect 개체의 CRectTracker 테두리를 그릴 때 호출됩니다.
CRectTracker::GetHandleMask 항목의 크기 조정 핸들 마스크를 CRectTracker 가져오기 위해 호출됩니다.
CRectTracker::GetTrueRect 크기 조정 핸들을 포함하여 사각형의 너비와 높이를 반환합니다.
CRectTracker::HitTest 개체와 관련된 커서의 현재 위치를 반환 CRectTracker 합니다.
CRectTracker::NormalizeHit 적중 테스트 코드를 정규화합니다.
CRectTracker::OnChangedRect 사각형의 크기를 조정하거나 이동할 때 호출됩니다.
CRectTracker::SetCursor 사각형 위에 있는 위치에 따라 커서를 설정합니다.
CRectTracker::Track 사용자가 사각형을 조작할 수 있습니다.
CRectTracker::TrackRubberBand 사용자가 선택을 "고무 밴드"할 수 있습니다.

공용 데이터 멤버

속성 설명
CRectTracker::m_nHandleSize 크기 조정 핸들의 크기를 결정합니다.
CRectTracker::m_nStyle 추적기의 현재 스타일입니다.
CRectTracker::m_rect 사각형의 현재 위치(픽셀)입니다.
CRectTracker::m_sizeMin 최소 사각형 너비와 높이를 결정합니다.

설명

CRectTracker 에는 기본 클래스가 없습니다.

CRectTracker 클래스는 사용자가 그래픽 인터페이스를 사용하여 OLE 항목과 상호 작용할 수 있도록 설계되었지만 해당 사용은 OLE 사용 애플리케이션으로 제한되지 않습니다. 이러한 사용자 인터페이스가 필요한 모든 곳에서 사용할 수 있습니다.

CRectTracker 테두리는 단색 또는 점선일 수 있습니다. 항목에 빗살 무늬 테두리를 지정하거나 빗살 무늬로 겹쳐 항목의 다른 상태를 나타낼 수 있습니다. 항목의 바깥쪽 또는 안쪽 테두리에 8개의 크기 조정 핸들을 배치할 수 있습니다. (크기 조정 핸들에 대한 설명은 다음을 참조 하세요.GetHandleMask.) 마지막으로 크기를 CRectTracker 조정하는 동안 항목의 방향을 변경할 수 있습니다.

사용 CRectTracker하려면 개체를 CRectTracker 생성하고 초기화되는 표시 상태를 지정합니다. 그런 다음 이 인터페이스를 사용하여 개체와 연결된 CRectTracker OLE 항목의 현재 상태에 대한 시각적 피드백을 사용자에게 제공할 수 있습니다.

사용에 CRectTracker대한 자세한 내용은 추적기 문서를 참조하세요.

상속 계층 구조

CRectTracker

요구 사항

헤더: afxext.h

CRectTracker::AdjustRect

크기 조정 핸들을 사용하여 추적 사각형의 크기를 조정할 때 프레임워크에서 호출됩니다.

virtual void AdjustRect(
    int nHandle,
    LPRECT lpRect);

매개 변수

nHandle
사용된 핸들의 인덱스입니다.

lpRect
사각형의 현재 크기에 대한 포인터입니다. (사각형의 크기는 높이와 너비에 따라 지정됩니다.)

설명

이 함수의 기본 동작을 사용하면 반전이 허용되는 경우에만 Track TrackRubberBand 직사각형의 방향을 변경할 수 있습니다.

끌기 작업 중에 추적 사각형의 조정을 제어하려면 이 함수를 재정의합니다. 한 가지 방법은 반환하기 전에 lpRect지정된 좌표를 조정하는 것입니다.

스냅 투 그리드 또는 가로 세로 비율 유지와 같이 직접 지원 CRectTracker되지 않는 특수 기능은 이 함수를 재정의하여 구현할 수 있습니다.

CRectTracker::CRectTracker

CRectTracker 개체를 만들고 초기화합니다.

CRectTracker();

CRectTracker(
    LPCRECT lpSrcRect,
    UINT nStyle);

매개 변수

lpSrcRect
사각형 개체의 좌표입니다.

nStyle
개체의 CRectTracker 스타일을 지정합니다. 지원되는 스타일은 다음과 같습니다.

  • CRectTracker::solidLine 사각형 테두리에 단색을 사용합니다.

  • CRectTracker::dottedLine 사각형 테두리에 점선을 사용합니다.

  • CRectTracker::hatchedBorder 사각형 테두리에 빗살 무늬를 사용합니다.

  • CRectTracker::resizeInside 사각형 내부에 있는 핸들의 크기를 조정합니다.

  • CRectTracker::resizeOutside 사각형 외부에 있는 핸들의 크기를 조정합니다.

  • CRectTracker::hatchInside 부화 패턴은 전체 사각형을 덮습니다.

설명

기본 생성자는 lpSrcRect값을 사용하여 개체를 초기화 CRectTracker 하고 다른 크기를 시스템 기본값으로 초기화합니다. 매개 변수 m_rect 없이 개체를 만들면 데이터 멤버 및 m_nStyle 데이터 멤버가 초기화되지 않습니다.

CRectTracker::D raw

사각형의 바깥쪽 선과 내부 영역을 그리려면 이 함수를 호출합니다.

void Draw(CDC* pDC) const;

매개 변수

pDC
그릴 디바이스 컨텍스트에 대한 포인터입니다.

설명

추적기의 스타일에 따라 드로잉이 수행되는 방법이 결정됩니다. 사용 가능한 스타일에 대한 CRectTracker 자세한 내용은 생성자를 참조하세요.

CRectTracker::D rawTrackerRect

또는 멤버 함수 내에 있는 동안 추적기의 위치가 변경될 때마다 프레임워크에서 Track TrackRubberBand 호출됩니다.

virtual void DrawTrackerRect(
    LPCRECT lpRect,
    CWnd* pWndClipTo,
    CDC* pDC,
    CWnd* pWnd);

매개 변수

lpRect
RECT 그릴 사각형이 들어 있는 포인터입니다.

pWndClipTo
사각형을 클리핑하는 데 사용할 창에 대한 포인터입니다.

pDC
그릴 디바이스 컨텍스트에 대한 포인터입니다.

pWnd
드로잉이 발생할 창에 대한 포인터입니다.

설명

기본 구현은 점선 사각형을 CDC::DrawFocusRect그리는 호출을 수행합니다.

추적 작업 중에 다른 피드백을 제공하도록 이 함수를 재정의합니다.

CRectTracker::GetHandleMask

프레임워크는 이 멤버 함수를 호출하여 사각형의 크기 조정 핸들에 대한 마스크를 검색합니다.

virtual UINT GetHandleMask() const;

Return Value

항목의 CRectTracker 크기 조정 핸들 마스크입니다.

설명

크기 조정 핸들은 사각형의 측면과 모서리에 표시되며 사용자가 사각형의 모양과 크기를 제어할 수 있습니다.

사각형에는 0-7로 번호가 매겨진 8개의 크기 조정 핸들이 있습니다. 각 크기 조정 핸들은 마스크에서 비트로 표시됩니다. 해당 비트의 값은 2^ n입니다. 여기서 n 은 크기 조정 핸들 번호입니다. 비트 0-3은 시계 방향으로 이동하는 왼쪽 위에서 시작하여 모서리 크기 조정 핸들에 해당합니다. 비트 4-7은 시계 방향으로 움직이는 위쪽에서 시작하는 측면 크기 조정 핸들에 해당합니다. 다음 그림에서는 사각형의 크기 조정 핸들과 해당 크기 조정 핸들 번호 및 값을 보여 줍니다.

핸들 번호의 크기를 조정합니다.

크기 조정 핸들이 표시되도록 비트의 마스크를 반환하는 기본 구현 GetHandleMask 입니다. 단일 비트가 켜지면 해당 크기 조정 핸들이 그려집니다.

표시된 크기 조정 핸들을 숨기거나 표시하려면 이 멤버 함수를 재정의합니다.

CRectTracker::GetTrueRect

이 함수를 호출하여 사각형의 좌표를 검색합니다.

void GetTrueRect(LPRECT lpTrueRect) const;

매개 변수

lpTrueRect
개체의 RECT 디바이스 좌표를 포함할 구조체에 CRectTracker 대한 포인터입니다.

설명

사각형의 크기에는 바깥 테두리에 있는 크기 조정 핸들의 높이와 너비가 포함됩니다. 반환 시 lpTrueRect 는 항상 디바이스 좌표에서 정규화된 사각형입니다.

CRectTracker::HitTest

이 함수를 호출하여 사용자가 크기 조정 핸들을 잡았는지 확인합니다.

int HitTest(CPoint point) const;

매개 변수

point
테스트할 지점(디바이스 좌표)입니다.

Return Value

반환되는 값은 열거형 형식 CRectTracker::TrackerHit 을 기반으로 하며 다음 값 중 하나를 가질 수 있습니다.

  • CRectTracker::hitNothing -1

  • CRectTracker::hitTopLeft 0

  • CRectTracker::hitTopRight 1

  • CRectTracker::hitBottomRight 2

  • CRectTracker::hitBottomLeft 3

  • CRectTracker::hitTop 4

  • CRectTracker::hitRight 5

  • CRectTracker::hitBottom 6

  • CRectTracker::hitLeft 7

  • CRectTracker::hitMiddle 8

CRectTracker::m_nHandleSize

크기 조정 핸들의 CRectTracker 크기(픽셀)입니다.

int m_nHandleSize;

설명

기본 시스템 값을 사용하여 초기화됩니다.

CRectTracker::m_rect

클라이언트 좌표(픽셀)에서 사각형의 현재 위치입니다.

CRect m_rect;

CRectTracker::m_sizeMin

사각형의 최소 크기입니다.

CSize m_sizeMin;

설명

기본값 cxcy, 둘 다 테두리 너비에 대한 기본 시스템 값에서 계산됩니다. 이 데이터 멤버는 멤버 함수에서 AdjustRect 만 사용됩니다.

CRectTracker::m_nStyle

사각형의 현재 스타일입니다.

UINT m_nStyle;

설명

가능한 스타일 목록은 CRectTracker::CRectTracker를 참조하세요.

CRectTracker::NormalizeHit

이 함수를 호출하여 잠재적으로 반전된 핸들을 변환합니다.

int NormalizeHit(int nHandle) const;

매개 변수

nHandle
사용자가 선택한 핸들입니다.

Return Value

정규화된 핸들의 인덱스입니다.

설명

CRectTracker::Track 반전이 허용된 상태에서 호출되거나 CRectTracker::TrackRubberBand 호출되면 x축, y축 또는 둘 다에서 사각형을 반전할 수 있습니다. 이 경우 HitTest 사각형과 관련하여 반전된 핸들을 반환합니다. 피드백은 수정할 사각형 데이터 구조의 부분이 아니라 사각형의 화면 위치에 따라 달라지므로 커서 피드백을 그리기에 적합하지 않습니다.

CRectTracker::OnChangedRect

호출하는 동안 추적기 사각형이 변경될 때마다 프레임워크에서 호출됩니다 Track.

virtual void OnChangedRect(const CRect& rectOld);

매개 변수

rectOld
개체의 이전 디바이스 좌표를 포함합니다 CRectTracker .

설명

이 함수가 호출될 때 가져온 DrawTrackerRect 모든 피드백이 제거되었습니다. 이 함수의 기본 구현은 아무 작업도 수행하지 않습니다.

사각형의 크기를 조정한 후 작업을 수행하려는 경우 이 함수를 재정의합니다.

CRectTracker::SetCursor

개체 영역 위에 있는 동안 커서 셰이프를 변경하려면 이 함수를 CRectTracker 호출합니다.

BOOL SetCursor(
    CWnd* pWnd,
    UINT nHitTest) const;

매개 변수

pWnd
현재 커서가 포함된 창을 가리킵니다.

nHitTest
WM_SETCURSOR 메시지의 이전 적중 테스트 결과입니다.

Return Value

이전 적중이 추적기 사각형 위에 있는 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

WM_SETCURSOR 메시지(일반적으로)를 처리하는 창의 함수 내에서 이 함수를 호출합니다 OnSetCursor.

CRectTracker::Track

사각형 크기를 조정하기 위한 사용자 인터페이스를 표시하려면 이 함수를 호출합니다.

BOOL Track(
    CWnd* pWnd,
    CPoint point,
    BOOL bAllowInvert = FALSE,
    CWnd* pWndClipTo = NULL);

매개 변수

pWnd
사각형을 포함하는 창 개체입니다.

point
클라이언트 영역을 기준으로 현재 마우스 위치의 디바이스 좌표입니다.

bAllowInvert
TRUE이면 x축 또는 y축을 따라 사각형을 반전할 수 있습니다. 그렇지 않으면 FALSE입니다.

pWndClipTo
그리기 작업이 잘리게 될 창입니다. NULL인 경우 pWnd 는 클리핑 사각형으로 사용됩니다.

Return Value

ESC 키를 누르면 추적 프로세스가 중지되고 추적기에서 저장된 사각형이 변경되지 않고 0이 반환됩니다. 변경 내용이 커밋되면 마우스를 이동하고 마우스 왼쪽 단추를 놓으면 추적기 사각형에 새 위치 및/또는 크기가 기록되고 0이 아닌 값이 반환됩니다.

설명

일반적으로 메시지를 처리하는 애플리케이션의 함수 내에서 호출됩니다 WM_LBUTTONDOWN (일반적으로 OnLButtonDown).

이 함수는 사용자가 마우스 왼쪽 단추를 놓거나 ESC 키를 누르거나 오른쪽 마우스 단추를 누를 때까지 마우스를 캡처합니다. 사용자가 마우스 커서를 이동하면 피드백이 호출 DrawTrackerRect 하여 업데이트됩니다 OnChangedRect.

bAllowInvert가 TRUE이면 x축 또는 y축에서 추적 사각형을 반전할 수 있습니다.

CRectTracker::TrackRubberBand

이 함수를 호출하여 고무 밴드 선택을 수행합니다.

BOOL TrackRubberBand(
    CWnd* pWnd,
    CPoint point,
    BOOL bAllowInvert = TRUE);

매개 변수

pWnd
사각형을 포함하는 창 개체입니다.

point
클라이언트 영역을 기준으로 현재 마우스 위치의 디바이스 좌표입니다.

bAllowInvert
TRUE이면 x축 또는 y축을 따라 사각형을 반전할 수 있습니다. 그렇지 않으면 FALSE입니다.

Return Value

마우스가 이동하고 사각형이 비어 있지 않으면 0이 아닙니다. 그렇지 않으면 0입니다.

설명

일반적으로 WM_LBUTTONDOWN 메시지(일반적으로)를 처리하는 애플리케이션의 함수 내에서 호출됩니다 OnLButtonDown.

이 함수는 사용자가 마우스 왼쪽 단추를 놓거나 ESC 키를 누르거나 오른쪽 마우스 단추를 누를 때까지 마우스를 캡처합니다. 사용자가 마우스 커서를 이동하면 피드백이 호출 DrawTrackerRect 하여 업데이트됩니다 OnChangedRect.

추적은 오른쪽 아래 핸들에서 고무 대역 유형 선택으로 수행됩니다. 반전이 허용되는 경우 직사각형은 위쪽과 왼쪽 또는 아래로, 오른쪽으로 끌어 크기를 조정합니다.

참고 항목

MFC 샘플 추적기
MFC 샘플 DRAWCLI
계층 구조 차트
COleResizeBar 클래스
CRect 클래스