CRect 클래스

Windows RECT 구조와 유사합니다.

구문

class CRect : public tagRECT

멤버

공용 생성자

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

공용 메서드

이름 설명
CRect::BottomRight 의 오른쪽 아래 점을 반환합니다 CRect.
CRect::CenterPoint 의 중심점을 반환합니다 CRect.
CRect::CopyRect 원본 사각형 CRect의 차원을 .에 복사합니다.
CRect::DeflateRect 의 너비와 높이를 줄입니다 CRect.
CRect::EqualRect 지정된 사각형과 같은지 여부를 CRect 확인합니다.
CRect::Height 의 높이 CRect를 계산합니다.
CRect::InflateRect 의 너비와 높이를 늘입니다 CRect.
CRect::IntersectRect 두 사각형의 교집합과 동일하게 설정합니다 CRect .
CRect::IsRectEmpty 비어 있는지 여부를 CRect 확인합니다. CRect 너비 및/또는 높이가 0이면 비어 있습니다.
CRect::IsRectNull , bottomleft멤버 변수가 top모두 0과 right 같은지 여부를 결정합니다.
CRect::MoveToX 지정된 x 좌표로 이동합니다 CRect .
CRect::MoveToXY 지정된 x 좌표 및 y 좌표로 이동합니다 CRect .
CRect::MoveToY 지정된 y 좌표로 이동합니다 CRect .
CRect::NormalizeRect 의 높이와 너비를 CRect표준화합니다.
CRect::OffsetRect 지정된 오프셋으로 이동합니다 CRect .
CRect::PtInRect 지정된 지점이 에 있는지 CRect여부를 확인합니다.
CRect::SetRect 의 크기를 CRect설정합니다.
CRect::SetRectEmpty 빈 사각형으로 설정합니다 CRect (모든 좌표는 0과 같음).
CRect::Size 의 크기를 CRect계산합니다.
CRect::SubtractRect 한 사각형을 다른 사각형에서 뺍니다.
CRect::TopLeft 의 왼쪽 위 점을 반환합니다 CRect.
CRect::UnionRect 두 사각형의 합합과 같은 집합 CRect 입니다.
CRect::Width 의 너비 CRect를 계산합니다.

Public 연산자

이름 설명
CRect::operator - 지정된 오프셋 CRect 을 빼거나 수축 CRect 하고 결과 오프셋을 반환합니다 CRect.
CRect::operator LPCRECT CRectLPCRECT로 변환합니다.
CRect::operator LPRECT CRectLPRECT로 변환합니다.
CRect::operator != 사각형과 같지 않은지 여부를 CRect 확인합니다.
CRect::operator & 직사각형의 CRect 교집합을 만들고 결과 값을 반환합니다 CRect.
CRect::operator &= 직사각형의 CRect 교집합과 같은 값을 설정합니다CRect.
CRect::operator | 직사각형의 합 CRect 합을 만들고 결과 값을 반환합니다 CRect.
CRect::operator |= 직사각형의 CRect 합자 및 사각형과 같은 집합 CRect 입니다.
CRect::operator + 지정된 오프셋을 CRect 추가하거나 부풀리 CRect 고 결과 오프셋을 반환합니다 CRect.
CRect::operator += 지정된 오프셋을 CRect 추가하거나 확장합니다 CRect.
CRect::operator = 사각형 CRect의 크기를 .에 복사합니다.
CRect::operator -= 지정된 오프 CRect 셋을 빼거나 수축합니다 CRect.
CRect::operator == 사각형과 같은지 여부를 CRect 확인합니다.

설명

CRect에는 개체 및 Windows RECT 구조를 조작 CRect 하는 멤버 함수도 포함되어 있습니다.

개체는 CRect 구조LPCRECT체가 어디에 있든 RECT 함수 매개 변수로 전달되거나 LPRECT 전달될 수 있습니다.

참고 항목

이 클래스는 구조체 tagRECT 에서 파생됩니다. (이름은 tagRECT 구조체에 덜 일반적으로 사용되는 이름 RECT 입니다.) 즉, 구조체의 데이터 멤버(left, top, rightbottom)는 액세스할 수 있는 데이터 멤버입니다CRect.RECT

사각형 CRect 의 왼쪽 위와 오른쪽 아래 점을 정의하는 멤버 변수를 포함합니다.

지정하는 CRect경우 정규화되도록 구성해야 합니다. 즉, 왼쪽 좌표의 값이 오른쪽보다 작고 위쪽이 아래쪽보다 작도록 해야 합니다. 예를 들어 왼쪽 위(10,10)와 오른쪽 아래(20,20)는 정규화된 사각형을 정의하지만 왼쪽 위(20,20)와 오른쪽 아래(10,10)는 정규화되지 않은 사각형을 정의합니다. 사각형이 정규화되지 않은 경우 많은 CRect 멤버 함수가 잘못된 결과를 반환할 수 있습니다. (이러한 함수 목록은 참조 CRect::NormalizeRect 하세요.) 정규화된 사각형이 필요한 함수를 호출하기 전에 함수를 호출 NormalizeRect 하여 정규화되지 않은 사각형을 정규화할 수 있습니다.

with CDC::DPtoLPCDC::LPtoDP member 함수를 CRect 조작할 때는 주의해야 합니다. 표시 컨텍스트의 매핑 모드가 y 익스텐트에서와 같이 MM_LOENGLISHCDC::DPtoLP 음수이면 위쪽이 아래쪽보다 크도록 변환 CRect 됩니다. 그런 다음 변환된 CRect높이에 대한 음수 값을 반환하는 함수와 같은 HeightSize 함수는 정규화되지 않습니다.

오버로드된 CRect 연산자를 사용하는 경우 첫 번째 피연산자는 구조CRect체 또는 CRect 개체일 RECT 수 있습니다.

상속 계층 구조

tagRECT

CRect

요구 사항

헤더atltypes.h:

CRect::BottomRight

좌표는 에 포함된 개체에 CPoint 대한 참조로 반환됩니다 CRect.

CPoint& BottomRight() throw();
const CPoint& BottomRight() const throw();

Return Value

사각형의 오른쪽 아래 모서리 좌표입니다.

설명

이 함수를 사용하여 사각형의 오른쪽 아래 모서리를 얻거나 설정할 수 있습니다. 대입 연산자의 왼쪽에서 이 함수를 사용하여 모서리를 설정합니다.

예시

// use BottomRight() to retrieve the bottom
// right POINT
CRect rect(210, 150, 350, 900);
CPoint ptDown;

ptDown = rect.BottomRight();

// ptDown is now set to (350, 900)
ASSERT(ptDown == CPoint(350, 900));

// or, use BottomRight() to set the bottom
// right POINT
CRect rect2(10, 10, 350, 350);
CPoint ptLow(180, 180);

CRect rect2(10, 10, 350, 350);
CPoint ptLow(180, 180);
rect2.BottomRight() = ptLow;

// rect2 is now (10, 10, 180, 180)
ASSERT(rect2 == CRect(10, 10, 180, 180));

CRect::CenterPoint

왼쪽 및 오른쪽 값을 추가하고 2로 나누고 위쪽 및 아래쪽 값을 추가하고 2로 나누어 중심점을 CRect 계산합니다.

CPoint CenterPoint() const throw();

Return Value

CPoint 의 중심점CRect인 개체입니다.

예시

// Code from this OnPaint() implementation can be pasted into your own application
// to draw lines that would look like a letter "Y" within your dialog.
void CMyDlg::OnPaint()
{
    CPaintDC dc(this);

    // device context for painting

    // get the size and position of the client area of
    // your window

    CRect rect;
    GetClientRect(&rect);

    // Move the current pen to the top left of the window. We call the
    // TopLeft() member of CRect here and it returns a CPoint object we
    // pass to the override of CDC::MoveTo() that accepts a CPoint.

    dc.MoveTo(rect.TopLeft());

    // Draw a line from the top left to the center of the window.
    // CenterPoint() gives us the middle point of the window as a
    // CPoint, and since CDC::LineTo() has an override that accepts a
    // CPoint, we can just pass it along.

    dc.LineTo(rect.CenterPoint());

    // Now, draw a line to the top right of the window. There's no
    // CRect member which returns a CPoint for the top right of the
    // window, so we'll reference the CPoint members directly and call
    // the CDC::LineTo() override which takes two integers.

    dc.LineTo(rect.right, rect.top);

    // The top part of the "Y" is drawn. Now, we'll draw the stem. We
    // start from the center point.

    dc.MoveTo(rect.CenterPoint());

    // and then draw to the middle of the bottom edge of the window.
    // We'll get the x-coordinate from the x member of the CPOINT
    // returned by CenterPoint(), and the y value comes directly from
    // the rect.

    dc.LineTo(rect.CenterPoint().x, rect.bottom);
}

CRect::CopyRect

사각형을 lpSrcRect .에 CRect복사합니다.

void CopyRect(LPCRECT lpSrcRect) throw();

매개 변수

lpSrcRect
RECT 복사할 구조 또는 CRect 개체를 가리킵니다.

예시

CRect rectSource(35, 10, 125, 10);
CRect rectDest;

rectDest.CopyRect(&rectSource);

// rectDest is now set to (35, 10, 125, 10)

RECT rectSource2;
rectSource2.left = 0;
rectSource2.top = 0;
rectSource2.bottom = 480;
rectSource2.right = 640;

rectDest.CopyRect(&rectSource2);

// works against RECT structures, too!
// rectDest is now set to (0, 0, 640, 480)

CRect::CRect

CRect 개체를 생성합니다.

CRect() throw();
CRect(int l, int t, int r, int b) throw();
CRect(const RECT& srcRect) throw();
CRect(LPCRECT lpSrcRect) throw();
CRect(POINT point, SIZE size) throw();
CRect(POINT topLeft, POINT bottomRight) throw();

매개 변수

l
의 왼쪽 위치를 CRect지정합니다.

t
의 위쪽 CRect을 지정합니다.

r
의 올바른 위치를 CRect지정합니다.

b
의 아래쪽 CRect을 지정합니다.

srcRect
에 대한 CRect좌표가 RECT 있는 구조를 참조합니다.

lpSrcRect
에 대한 CRect좌표가 RECT 있는 구조를 가리킵니다.

point
생성할 사각형의 원점을 지정합니다. 왼쪽 위 모서리에 해당합니다.

size
생성할 사각형의 왼쪽 위 모서리에서 오른쪽 아래 모서리로의 변위를 지정합니다.

topLeft
의 왼쪽 위 위치를 CRect지정합니다.

bottomRight
의 오른쪽 아래 위치를 CRect지정합니다.

설명

인수가 지정되지 않은 경우 , lefttoprightbottom 멤버는 0으로 설정됩니다.

CRect(const RECT&) 및 CRect(LPCRECT) 생성자는 CopyRect. 다른 생성자는 개체의 멤버 변수를 직접 초기화합니다.

예시

// default constructor is equivalent to CRect(0, 0, 0, 0)
CRect emptyRect;

// four-integers are left, top, right, and bottom
CRect rect(0, 0, 100, 50);
ASSERT(rect.Width() == 100);
ASSERT(rect.Height() == 50);

// Initialize from RECT structure
RECT sdkRect;
sdkRect.left = 0;
sdkRect.top = 0;
sdkRect.right = 100;
sdkRect.bottom = 50;

CRect rect2(sdkRect);
// by reference
CRect rect3(&sdkRect);

// by address
ASSERT(rect2 == rect);
ASSERT(rect3 == rect);

// from a point and a size
CPoint pt(0, 0);
CSize sz(100, 50);
CRect rect4(pt, sz);
ASSERT(rect4 == rect2);

// from two points
CPoint ptBottomRight(100, 50);
CRect rect5(pt, ptBottomRight);
ASSERT(rect5 == rect4);

CRect::DeflateRect

DeflateRectCRect 측면을 중앙으로 이동하여 수축합니다.

void DeflateRect(int x, int y) throw();
void DeflateRect(SIZE size) throw();
void DeflateRect(LPCRECT lpRect) throw();
void DeflateRect(int l, int t, int r, int b) throw();

매개 변수

x
의 왼쪽과 오른쪽을 수축할 단위 수를 CRect지정합니다.

y
의 위쪽과 아래쪽을 수축할 단위 수를 CRect지정합니다.

size
CSize 또는 SIZE 수축할 단위 수를 지정하는 값입니다CRect. 값은 왼쪽과 오른쪽을 수축할 단위 수를 지정하고 cy 값은 cx 위쪽과 아래쪽을 수축할 단위 수를 지정합니다.

lpRect
구조를 가리키 RECT 거나 CRect 각 면을 수축할 단위 수를 지정합니다.

l
의 왼쪽을 수축할 단위 수를 CRect지정합니다.

t
위쪽을 수축할 단위 수를 CRect지정합니다.

r
오른쪽을 수축할 단위 수를 CRect지정합니다.

b
의 아래쪽을 수축할 단위 수를 CRect지정합니다.

설명

이렇게 DeflateRect 하려면 왼쪽 및 위쪽에 단위를 추가하고 오른쪽과 아래쪽에서 단위를 뺍니다. 매개 DeflateRect 변수는 서명된 값입니다. 양수 값은 CRect 수축되고 음수 값은 부풀립니다.

처음 두 오버로드는 두 쌍의 반대쪽 CRect 을 수축하여 총 너비가 두 번 x (또는 cx) 감소하고 총 높이가 두 번 y (또는 cy)으로 감소합니다. 다른 두 오버로드는 서로 독립적으로 양쪽을 CRect 수축합니다.

예시

CRect rect(10, 10, 50, 50);
rect.DeflateRect(1, 2);
ASSERT(rect.left == 11 && rect.right == 49);
ASSERT(rect.top == 12 && rect.bottom == 48);

CRect rect2(10, 10, 50, 50);
CRect rectDeflate(1, 2, 3, 4);
rect2.DeflateRect(&rectDeflate);
ASSERT(rect2.left == 11 && rect2.right == 47);
ASSERT(rect2.top == 12 && rect2.bottom == 46);

CRect::EqualRect

지정된 사각형과 같은지 여부를 CRect 확인합니다.

BOOL EqualRect(LPCRECT lpRect) const throw();

매개 변수

lpRect
사각형의 RECT 왼쪽 위와 오른쪽 아래 모퉁이 좌표를 포함하는 구조체 또는 CRect 개체를 가리킵니다.

Return Value

두 사각형의 위쪽, 왼쪽, 아래쪽 및 오른쪽 값이 0이 아닌 경우 그렇지 않으면 0입니다.

참고 항목

두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999, 6, 3);
ASSERT(rect1.EqualRect(rect2));
ASSERT(!rect1.EqualRect(rect3));
// works just fine against RECTs, as well

RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;

ASSERT(rect1.EqualRect(&test));

CRect::Height

맨 아래 값에서 CRect 위쪽 값을 빼서 높이를 계산합니다.

int Height() const throw();

Return Value

의 높이입니다 CRect.

설명

결과 값은 음수일 수 있습니다.

참고 항목

사각형을 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect rect(20, 30, 80, 70);
int nHt = rect.Height();

// nHt is now 40
ASSERT(nHt == 40);

CRect::InflateRect

InflateRectCRect 중심에서 옆으로 이동하여 팽창합니다.

void InflateRect(int x, int y) throw();
void InflateRect(SIZE size) throw();
void InflateRect(LPCRECT lpRect) throw();
void InflateRect(int l, int t, int r,  int b) throw();

매개 변수

x
의 왼쪽과 오른쪽을 부풀릴 단위 수를 CRect지정합니다.

y
의 위쪽과 아래쪽을 확장할 단위 수를 CRect지정합니다.

size
또는 SIZECSize 팽창할 단위 수를 지정하는 값입니다 CRect. 값은 왼쪽과 오른쪽을 부풀릴 단위 수를 지정하고 cy 값은 cx 위쪽과 아래쪽을 부풀릴 단위 수를 지정합니다.

lpRect
구조를 가리키 RECT 거나 CRect 양쪽을 확장할 단위 수를 지정합니다.

l
의 왼쪽을 확장할 단위 수를 CRect지정합니다.

t
위쪽을 부풀릴 단위 수를 CRect지정합니다.

r
오른쪽을 확장할 단위 수를 CRect지정합니다.

b
의 아래쪽을 확장할 단위 수를 CRect지정합니다.

설명

이렇게 InflateRect 하려면 왼쪽과 위쪽에서 단위를 빼고 오른쪽과 아래쪽에 단위를 추가합니다. 매개 InflateRect 변수는 서명된 값입니다. 양수 값은 CRect 팽창하고 음수 값은 부풀립니다.

처음 두 오버로드는 두 쌍의 반대쪽 CRect 을 팽창시켜 총 너비가 두 번 x (또는 cx) 증가하고 총 높이가 두 번 y (또는 cy)씩 증가합니다. 다른 두 오버로드는 서로 독립적으로 양쪽을 CRect 확장합니다.

예시

CRect rect(0, 0, 300, 300);
rect.InflateRect(50, 200);

// rect is now (-50, -200, 350, 500)
ASSERT(rect == CRect(-50, -200, 350, 500));

CRect::IntersectRect

CRect 두 개의 기존 사각형의 교집합과 동일하게 만듭니다.

BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();

매개 변수

lpRect1
원본 사각형이 RECT 포함된 구조체 또는 CRect 개체를 가리킵니다.

lpRect2
원본 사각형이 RECT 포함된 구조체 또는 CRect 개체를 가리킵니다.

Return Value

교집합이 비어 있지 않으면 0이 아닙니다. 교집합이 비어 있으면 0입니다.

설명

교집합은 두 기존 사각형에 포함된 가장 큰 사각형입니다.

참고 항목

두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect rectOne(125,  0, 150, 200);
CRect rectTwo(0, 75, 350, 95);
CRect rectInter;

rectInter.IntersectRect(rectOne, rectTwo);
ASSERT(rectInter == CRect(125, 75, 150, 95));
// operator &= can do the same task:

CRect rectInter2 = rectOne;
rectInter2 &= rectTwo;
ASSERT(rectInter2 == CRect(125, 75, 150, 95));

CRect::IsRectEmpty

비어 있는지 여부를 CRect 확인합니다.

BOOL IsRectEmpty() const throw();

Return Value

비어 있으면 CRect 0이 아니고 비어 있지 않으면 CRect 0입니다.

설명

너비 및/또는 높이가 0 또는 음수이면 사각형이 비어 있습니다. 사각형의 IsRectNull모든 좌표가 0인지 여부를 결정하는 것과 다릅니다.

참고 항목

사각형을 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect rectNone(0, 0, 0, 0);
CRect rectSome(35, 50, 135, 150);
ASSERT(rectNone.IsRectEmpty());
ASSERT(!rectSome.IsRectEmpty());
CRect rectEmpty(35, 35, 35, 35);
ASSERT(rectEmpty.IsRectEmpty());

CRect::IsRectNull

위쪽, 왼쪽, 아래쪽 및 오른쪽 값 CRect 이 모두 0과 같은지 여부를 확인합니다.

BOOL IsRectNull() const throw();

Return Value

위쪽, 왼쪽, 아래쪽 및 오른쪽 값이 모두 0이면 CRect0이 아니고, 그렇지 않으면 0입니다.

설명

사각형이 IsRectEmpty비어 있는지 여부를 결정하는 것과 다릅니다.

예시

CRect rectNone(0, 0, 0, 0);
CRect rectSome(35, 50, 135, 150);
ASSERT(rectNone.IsRectNull());
ASSERT(!rectSome.IsRectNull());
// note that null means _all_ zeros

CRect rectNotNull(0, 0, 35, 50);
ASSERT(!rectNotNull.IsRectNull());

CRect::MoveToX

이 함수를 호출하여 사각형을 지정한 절대 x 좌표 x로 이동합니다.

void MoveToX(int x) throw();

매개 변수

x
사각형의 왼쪽 위 모서리에 대한 절대 x 좌표입니다.

예시

CRect rect(0, 0, 100, 100);
rect.MoveToX(10);

// rect is now (10, 0, 110, 100);
ASSERT(rect == CRect(10, 0, 110, 100));

CRect::MoveToXY

이 함수를 호출하여 사각형을 지정된 절대 x 및 y 좌표로 이동합니다.

void MoveToXY(int x, int y) throw();
void MoveToXY(POINT point) throw();

매개 변수

x
사각형의 왼쪽 위 모서리에 대한 절대 x 좌표입니다.

y
사각형의 왼쪽 위 모퉁이에 대한 절대 y 좌표입니다.

point
POINT 사각형의 절대 왼쪽 위 모퉁이를 지정하는 구조체입니다.

예시

CRect rect(0, 0, 100, 100);
rect.MoveToXY(10, 10);
// rect is now (10, 10, 110, 110);
ASSERT(rect == CRect(10, 10, 110, 110));

CRect::MoveToY

이 함수를 호출하여 사각형을 지정된 절대 y 좌표 y로 이동합니다.

void MoveToY(int y) throw();

매개 변수

y
사각형의 왼쪽 위 모퉁이에 대한 절대 y 좌표입니다.

예시

CRect rect(0, 0, 100, 100);
rect.MoveToY(10);
// rect is now (0, 10, 100, 110);
ASSERT(rect == CRect(0, 10, 100, 110));

CRect::NormalizeRect

높이와 너비가 모두 양수가 되도록 정규화 CRect 합니다.

void NormalizeRect() throw();

설명

사각형은 Windows에서 일반적으로 좌표에 사용하는 네 번째 사분면 위치 지정을 위해 정규화됩니다. NormalizeRect 는 위쪽 값과 아래쪽 값을 비교하고 위쪽이 아래쪽보다 크면 바꿉니다. 마찬가지로 왼쪽이 오른쪽보다 크면 왼쪽 및 오른쪽 값을 바꿉니다. 이 함수는 다른 매핑 모드 및 반전된 사각형을 처리할 때 유용합니다.

참고 항목

다음 CRect 멤버 함수는 제대로 operator |EqualRectoperator ==SubtractRectoperator !=IntersectRectoperator |=operator &HeightSizeoperator &=WidthIsRectEmptyPtInRectUnionRect작동하려면 정규화된 사각형이 필요합니다.

예시

CRect rect1(110, 100, 250, 310);
CRect rect2(250, 310, 110, 100);
rect1.NormalizeRect();
rect2.NormalizeRect();
ASSERT(rect1 == rect2);

CRect::OffsetRect

지정된 오프셋으로 이동합니다 CRect .

void OffsetRect(int x, int y) throw();
void OffsetRect(POINT point) throw();
void OffsetRect(SIZE size) throw();

매개 변수

x
왼쪽 또는 오른쪽으로 이동할 크기를 지정합니다. 왼쪽으로 이동하려면 음수여야 합니다.

y
위로 또는 아래로 이동할 크기를 지정합니다. 위로 이동하려면 음수여야 합니다.

point
POINT 이동할 두 차원을 지정하는 구조체 또는 CPoint 개체를 포함합니다.

size
SIZE 이동할 두 차원을 지정하는 구조체 또는 CSize 개체를 포함합니다.

설명

x축을 따라 단위를 이동하고 y y축을 따라 단위를 이동합니다.CRectxy 매개 변수는 x 서명된 값이므로 CRect 왼쪽 또는 오른쪽 및 아래로 이동할 수 있습니다.

예시

CRect rect(0, 0, 35, 35);
rect.OffsetRect(230, 230);

// rect is now (230, 230, 265, 265)
ASSERT(rect == CRect(230, 230, 265, 265));

CRect::operator LPCRECTCRect 으로 변환합니다 LPCRECT.

operator LPCRECT() const throw();

설명

이 함수를 사용하는 경우 address-of(&) 연산자가 필요하지 않습니다. 이 연산자는 개체를 예상LPCRECT하는 함수에 CRect 전달할 때 자동으로 사용됩니다.

CRect::operator LPRECT

CRectLPRECT로 변환합니다.

operator LPRECT() throw();

설명

이 함수를 사용하는 경우 address-of(&) 연산자가 필요하지 않습니다. 이 연산자는 개체를 예상LPRECT하는 함수에 CRect 전달할 때 자동으로 사용됩니다.

예시

에 대한 예제를 CRect::operator LPCRECT참조하세요.

CRect::operator =

에 할당합니다 srcRectCRect.

void operator=(const RECT& srcRect) throw();

매개 변수

srcRect
원본 사각형을 참조합니다. a 또는 CRect.일 RECT 수 있습니다.

예시

CRect rect(0, 0, 127, 168);
CRect rect2;

rect2 = rect;
ASSERT(rect2 == CRect(0, 0, 127, 168));

CRect::operator ==

왼쪽 위와 오른쪽 아래 모서리의 좌표를 비교하여 같은 CRect 지 여부를 rect 결정합니다.

BOOL operator==(const RECT& rect) const throw();

매개 변수

rect
원본 사각형을 참조합니다. a 또는 CRect.일 RECT 수 있습니다.

Return Value

0이 아닌 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

참고 항목

두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999, 6, 3);
ASSERT(rect1 == rect2);
// works just fine against RECTs, as well

RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;

ASSERT(rect1 == test);

CRect::operator !=

왼쪽 위와 오른쪽 아래 모서리의 좌표를 비교하여 같지 CRect 않은지 여부를 rect 결정합니다.

BOOL operator!=(const RECT& rect) const throw();

매개 변수

rect
원본 사각형을 참조합니다. a 또는 CRect.일 RECT 수 있습니다.

Return Value

0이 아니면 0이 아닙니다. 그렇지 않으면 0입니다.

설명

참고 항목

두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect rect1(35, 150, 10, 25);
CRect rect2(35, 150, 10, 25);
CRect rect3(98, 999,  6,  3);
ASSERT(rect1 != rect3);
// works just fine against RECTs, as well

RECT test;
test.left = 35;
test.top = 150;
test.right = 10;
test.bottom = 25;

ASSERT(rect3 != test);

CRect::operator +=

처음 두 오버로드는 지정된 오프셋으로 이동합니다 CRect .

void operator+=(POINT point) throw();
void operator+=(SIZE size) throw();
void operator+=(LPCRECT lpRect) throw();

매개 변수

point
POINT 사각형을 이동할 단위 수를 지정하는 구조체 또는 CPoint 개체입니다.

size
SIZE 사각형을 이동할 단위 수를 지정하는 구조체 또는 CSize 개체입니다.

lpRect
각 측면을 CRect확장할 RECT 단위 수를 포함하는 구조체 또는 CRect 개체를 가리킵니다.

설명

매개 변수 및 xy (또는 cxcy) 값이 에 추가 CRect됩니다.

세 번째 오버로드는 매개 변수의 각 멤버에 지정된 단위 수만큼 확장 CRect 됩니다.

예시

CRect   rect1(100, 235, 200, 335);
CPoint  pt(35, 65);
CRect   rect2(135, 300, 235, 400);

rect1 += pt;
ASSERT(rect1 == rect2);

CRect::operator -=

처음 두 오버로드는 지정된 오프셋으로 이동합니다 CRect .

void operator-=(POINT point) throw();
void operator-=(SIZE size) throw();
void operator-=(LPCRECT lpRect) throw();

매개 변수

point
POINT 사각형을 이동할 단위 수를 지정하는 구조체 또는 CPoint 개체입니다.

size
SIZE 사각형을 이동할 단위 수를 지정하는 구조체 또는 CSize 개체입니다.

lpRect
각 면을 CRect수축할 RECT 단위 수를 포함하는 구조체 또는 CRect 개체를 가리킵니다.

설명

매개 변수 및 xy (또는 cxcy) 값은 .에서 CRect빼집니다.

세 번째 오버로드는 매개 변수의 각 멤버에 지정된 단위 수만큼 수축 CRect 됩니다. 이 오버로드 함수는 다음과 같습니다 DeflateRect.

예시

CRect   rect1(100, 235, 200, 335);
CPoint pt(35, 65);

rect1 -= pt;
CRect   rectResult(65, 170, 165, 270);
ASSERT(rect1 == rectResult);

CRect::operator &=

의 교집 CRect 합과 rect같게 설정합니다CRect.

void operator&=(const RECT& rect) throw();

매개 변수

rect
또는 .를 RECTCRect포함합니다.

설명

교집합은 두 사각형에 모두 포함된 가장 큰 사각형입니다.

참고 항목

두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

에 대한 예제를 CRect::IntersectRect참조하세요.

CRect::operator |=

및 .의 CRect 합합과 rect같은 집합 CRect

void operator|=(const RECT& rect) throw();

매개 변수

rect
또는 .를 CRectRECT포함합니다.

설명

공용 구조체는 원본 사각형을 모두 포함하는 가장 작은 사각형입니다.

참고 항목

두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect   rect1(100,  0, 200, 300);
CRect   rect2(0, 100, 300, 200);

rect1 |= rect2;
CRect   rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect1);

CRect::operator +

처음 두 오버로드는 지정된 오프셋에 CRect 의해 변위된 개체를 반환 CRect 합니다.

CRect operator+(POINT point) const throw();
CRect operator+(LPCRECT lpRect) const throw();
CRect operator+(SIZE size) const throw();

매개 변수

point
POINT 반환 값을 이동할 단위 수를 지정하는 구조체 또는 CPoint 개체입니다.

size
SIZE 반환 값을 이동할 단위 수를 지정하는 구조체 또는 CSize 개체입니다.

lpRect
반환 값의 RECT 각 측면을 확장할 단위 수를 포함하는 구조체 또는 CRect 개체를 가리킵니다.

Return Value

CRect 매개 변수에 지정된 단위 수만큼 이동하거나 부풀려 CRect 진 결과입니다.

설명

매개 변수 x 및(또는 cxcy) 매개 변수가 '의 위치에 추가 CRecty 됩니다.

세 번째 오버로드는 매개 변수의 각 멤버에 지정된 단위 수만큼 확장되는 것과 같은 CRectCRect 값을 반환합니다.

예시

CRect   rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect   rect2;

rect2 = rect1 + pt;
CRect   rectResult(135, 300, 235, 400);
ASSERT(rectResult == rect2);

CRect::operator -

처음 두 오버로드는 지정된 오프셋에 CRect 의해 변위된 개체를 반환 CRect 합니다.

CRect operator-(POINT point) const throw();
CRect operator-(SIZE size) const throw();
CRect operator-(LPCRECT lpRect) const throw();

매개 변수

point
POINT 반환 값을 이동할 단위 수를 지정하는 구조체 또는 CPoint 개체입니다.

size
SIZE 반환 값을 이동할 단위 수를 지정하는 구조체 또는 CSize 개체입니다.

lpRect
반환 값의 RECT 각 측면을 수축할 단위 수를 포함하는 구조체 또는 CRect 개체를 가리킵니다.

Return Value

CRect 매개 변수에 지정된 단위 수만큼 이동하거나 수축 CRect 한 결과입니다.

설명

매개 변수 xy (또는cycx) 매개 변수는 '의 위치에서 빼CRect집니다.

세 번째 오버로드는 매개 변수의 각 멤버에 지정된 단위 수만큼 CRect 수축되는 것과 같은 새 CRect 값을 반환합니다. 이 오버로드는 .가 아니라 SubtractRect같은 DeflateRect함수를 사용합니다.

예시

CRect   rect1(100, 235, 200, 335);
CPoint pt(35, 65);
CRect   rect2;

rect2 = rect1 - pt;
CRect   rectResult(65, 170, 165, 270);
ASSERT(rect2 == rectResult);

CRect::operator &

CRect rect2CRect교집합인 값을 반환합니다.

CRect operator&(const RECT& rect2) const throw();

매개 변수

rect2
또는 .를 RECTCRect포함합니다.

Return Value

의 교집 CRectrect2합인 A CRect 입니다.

설명

교집합은 두 사각형에 모두 포함된 가장 큰 사각형입니다.

참고 항목

두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect   rect1(100,  0, 200, 300);
CRect   rect2(0, 100, 300, 200);
CRect   rect3;

rect3 = rect1 & rect2;
CRect   rectResult(100, 100, 200, 200);
ASSERT(rectResult == rect3);

CRect::operator |

및 .의 합합인 a CRectCRect 반환합니다 rect2.

CRect operator|(const RECT&
rect2) const throw();

매개 변수

rect2
또는 .를 RECTCRect포함합니다.

Return Value

의 합체 CRectrect2인 A CRect 입니다.

설명

공용 구조체는 두 사각형을 모두 포함하는 가장 작은 사각형입니다.

참고 항목

두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect   rect1(100,  0, 200, 300);
CRect   rect2(0, 100, 300, 200);
CRect   rect3;

rect3 = rect1 | rect2;
CRect   rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect3);

CRect::PtInRect

지정된 지점이 에 있는지 CRect여부를 확인합니다.

BOOL PtInRect(POINT point) const throw();

매개 변수

point
구조체 또는 CPoint 개체를 POINT 포함합니다.

Return Value

점이 0이 아니면 0이 아니고, 그렇지 않으면 0입니다 CRect.

설명

점이 CRect 왼쪽 또는 위쪽에 있거나 네 면 모두 내에 있는 경우입니다. 오른쪽 또는 아래쪽에 있는 점이 바깥쪽 CRect에 있습니다.

참고 항목

사각형을 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect rect(5, 5, 100, 100);
CPoint pt1(35, 50);
CPoint pt2(125, 298);

// this is true, because pt1 is inside the rectangle
ASSERT(rect.PtInRect(pt1));

// this is NOT true, because pt2 is outside the rectangle
ASSERT(!rect.PtInRect(pt2));

// note that the right and the bottom aren't inside
ASSERT(!rect.PtInRect(CPoint(35, 100)));
ASSERT(!rect.PtInRect(CPoint(100, 98)));

// but the top and the left are inside
ASSERT(rect.PtInRect(CPoint(5, 65)));
ASSERT(rect.PtInRect(CPoint(88, 5)));

// and that PtInRect() works against a POINT, too
POINT pt;
pt.x = 35;
pt.y = 50;
ASSERT(rect.PtInRect(pt));

CRect::SetRect

크기를 CRect 지정된 좌표로 설정합니다.

void SetRect(int x1, int y1, int x2, int y2) throw();

매개 변수

x1
왼쪽 위 모서리의 x 좌표를 지정합니다.

y1
왼쪽 위 모서리의 y 좌표를 지정합니다.

x2
오른쪽 아래 모서리의 x 좌표를 지정합니다.

y2
오른쪽 아래 모서리의 y 좌표를 지정합니다.

예시

CRect rect;
rect.SetRect(256, 256, 512, 512);
ASSERT(rect == CRect(256, 256, 512, 512));

CRect::SetRectEmpty

모든 좌표를 0으로 설정하여 null 사각형을 만듭니 CRect 다.

void SetRectEmpty() throw();

예시

CRect rect;
rect.SetRectEmpty();

// rect is now (0, 0, 0, 0)
ASSERT(rect.IsRectEmpty());

CRect::SIZE

반환 값의 멤버 및 cy 멤버는 cx 높이와 너비를 CRect포함합니다.

CSize Size() const throw();

Return Value

CSize 크기를 포함하는 개체입니다CRect.

설명

높이 또는 너비는 음수일 수 있습니다.

참고 항목

사각형을 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect rect(10, 10, 50, 50);
CSize sz = rect.Size();
ASSERT(sz.cx == 40 && sz.cy == 40);

CRect::SubtractRect

의 차원을 CRectlpRectSrc2lpRectSrc1는 것과 같게 만듭니다.

BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2) throw();

매개 변수

lpRectSrc1
사각형을 RECT 뺄 구조 또는 CRect 개체를 가리킵니다.

lpRectSrc2
매개 변수가 RECT 가리키는 사각형에서 빼야 하는 구조체 또는 CRect 개체를 lpRectSrc1 가리킵니다.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

빼기는 교집 lpRectScr1 합에 없는 모든 점을 lpRectScr1 포함하는 가장 작은 사각형입니다lpRectScr2.

지정된 lpRectSrc1 사각형이 x 방향 또는 y 방향 중 하나 이상에서 지정 lpRectSrc1 한 사각형과 완전히 겹치지 않는 경우 lpRectSrc2 지정된 사각형은 변경되지 않습니다.

예를 들어 (10,10, 100,100)이고 lpRectSrc2 (50,50, 150,150)인 경우 lpRectSrc1 함수가 반환될 때 가리키는 lpRectSrc1 사각형은 변경되지 않습니다. 그러나 (10,10, 100,100)이고 lpRectSrc2 (50,10, 150,150)이면 lpRectSrc1 함수가 반환될 때 가리키는 lpRectSrc1 사각형에 좌표(10,10, 50,100)가 포함됩니다.

SubtractRect이 연산자와 같지 않으며 연산자 -=도 아닙니다. 이러한 연산자 중 어느 것도 호출 SubtractRect하지 않습니다.

참고 항목

두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

RECT   rectOne;
RECT   rectTwo;

rectOne.left = 10;
rectOne.top = 10;
rectOne.bottom = 100;
rectOne.right = 100;

rectTwo.left = 50;
rectTwo.top = 10;
rectTwo.bottom = 150;
rectTwo.right = 150;

CRect   rectDiff;

rectDiff.SubtractRect(&rectOne, &rectTwo);
CRect   rectResult(10, 10, 50, 100);

ASSERT(rectDiff == rectResult);

// works for CRect, too, since there is
// implicit CRect -> LPCRECT conversion

CRect rect1(10, 10, 100, 100);
CRect rect2(50, 10, 150, 150);
CRect rectOut;

rectOut.SubtractRect(rect1, rect2);
ASSERT(rectResult == rectOut);

CRect::TopLeft

좌표는 에 포함된 개체에 CPoint 대한 참조로 반환됩니다 CRect.

CPoint& TopLeft() throw();
const CPoint& TopLeft() const throw();

Return Value

사각형의 왼쪽 위 모퉁이 좌표입니다.

설명

이 함수를 사용하여 사각형의 왼쪽 위 모서리를 얻거나 설정할 수 있습니다. 대입 연산자의 왼쪽에서 이 함수를 사용하여 모서리를 설정합니다.

예시

에 대한 예제를 CRect::CenterPoint참조하세요.

CRect::UnionRect

두 소스 사각형의 CRect 합치와 같은 차원을 만듭니다.

BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();

매개 변수

lpRect1
원본 사각형이 RECTCRect 포함된 또는 해당 사각형을 가리킵니다.

lpRect2
원본 사각형이 RECTCRect 포함된 또는 해당 사각형을 가리킵니다.

Return Value

공용 구조체가 비어 있지 않으면 0이 아닙니다. 공용 구조체가 비어 있으면 0입니다.

설명

공용 구조체는 원본 사각형을 모두 포함하는 가장 작은 사각형입니다.

Windows는 빈 사각형의 크기를 무시합니다. 즉, 높이가 없거나 너비가 없는 사각형입니다.

참고 항목

두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect   rect1(100,  0, 200, 300);
CRect   rect2(0, 100, 300, 200);
CRect   rect3;

rect3.UnionRect(&rect1, &rect2);
CRect   rectResult(0, 0, 300, 300);
ASSERT(rectResult == rect3);

CRect::Width

오른쪽 값에서 CRect 왼쪽 값을 빼서 너비를 계산합니다.

int Width() const throw();

Return Value

의 너비입니다 CRect.

설명

너비는 음수일 수 있습니다.

참고 항목

사각형을 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect 할 수 있습니다.

예시

CRect rect(20, 30, 80, 70);
int nWid = rect.Width();
// nWid is now 60
ASSERT(nWid == 60);

참고 항목

CPoint 클래스
CSize 클래스
RECT