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 |
, bottom 및 left 멤버 변수가 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 |
CRect 를 LPCRECT 로 변환합니다. |
CRect::operator LPRECT |
CRect 를 LPRECT 로 변환합니다. |
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
, right
및bottom
)는 액세스할 수 있는 데이터 멤버입니다CRect
.RECT
사각형 CRect
의 왼쪽 위와 오른쪽 아래 점을 정의하는 멤버 변수를 포함합니다.
지정하는 CRect
경우 정규화되도록 구성해야 합니다. 즉, 왼쪽 좌표의 값이 오른쪽보다 작고 위쪽이 아래쪽보다 작도록 해야 합니다. 예를 들어 왼쪽 위(10,10)와 오른쪽 아래(20,20)는 정규화된 사각형을 정의하지만 왼쪽 위(20,20)와 오른쪽 아래(10,10)는 정규화되지 않은 사각형을 정의합니다. 사각형이 정규화되지 않은 경우 많은 CRect
멤버 함수가 잘못된 결과를 반환할 수 있습니다. (이러한 함수 목록은 참조 CRect::NormalizeRect
하세요.) 정규화된 사각형이 필요한 함수를 호출하기 전에 함수를 호출 NormalizeRect
하여 정규화되지 않은 사각형을 정규화할 수 있습니다.
with CDC::DPtoLP
및 CDC::LPtoDP
member 함수를 CRect
조작할 때는 주의해야 합니다. 표시 컨텍스트의 매핑 모드가 y 익스텐트에서와 같이 MM_LOENGLISH
CDC::DPtoLP
음수이면 위쪽이 아래쪽보다 크도록 변환 CRect
됩니다. 그런 다음 변환된 CRect
높이에 대한 음수 값을 반환하는 함수와 같은 Height
Size
함수는 정규화되지 않습니다.
오버로드된 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
지정합니다.
설명
인수가 지정되지 않은 경우 , left
top
및 right
bottom
멤버는 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
DeflateRect
는 CRect
측면을 중앙으로 이동하여 수축합니다.
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
InflateRect
은 CRect
중심에서 옆으로 이동하여 팽창합니다.
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
또는 SIZE
CSize
팽창할 단위 수를 지정하는 값입니다 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이면 CRect
0이 아니고, 그렇지 않으면 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 |
EqualRect
operator ==
SubtractRect
operator !=
IntersectRect
operator |=
operator &
Height
Size
operator &=
Width
IsRectEmpty
PtInRect
UnionRect
작동하려면 정규화된 사각형이 필요합니다.
예시
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축을 따라 단위를 이동합니다.CRect
x
및 y
매개 변수는 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 LPCRECT
를 CRect
으로 변환합니다 LPCRECT
.
operator LPCRECT() const throw();
설명
이 함수를 사용하는 경우 address-of(&
) 연산자가 필요하지 않습니다. 이 연산자는 개체를 예상LPCRECT
하는 함수에 CRect
전달할 때 자동으로 사용됩니다.
CRect::operator LPRECT
CRect
를 LPRECT
로 변환합니다.
operator LPRECT() throw();
설명
이 함수를 사용하는 경우 address-of(&
) 연산자가 필요하지 않습니다. 이 연산자는 개체를 예상LPRECT
하는 함수에 CRect
전달할 때 자동으로 사용됩니다.
예시
CRect::operator LPCRECT
에 대한 예를 참조하세요.
CRect::operator =
에 할당합니다 srcRect
CRect
.
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
개체를 가리킵니다.
설명
매개 변수 및 x
y
(또는 cx
cy
) 값이 에 추가 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
개체를 가리킵니다.
설명
매개 변수 및 x
y
(또는 cx
cy
) 값은 .에서 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
또는 .를 RECT
CRect
포함합니다.
설명
교집합은 두 사각형에 모두 포함된 가장 큰 사각형입니다.
참고 항목
두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 NormalizeRect
할 수 있습니다.
예시
CRect::IntersectRect
에 대한 예를 참조하세요.
CRect::operator |=
및 .의 CRect
합합과 rect
같은 집합 CRect
void operator|=(const RECT& rect) throw();
매개 변수
rect
또는 .를 CRect
RECT
포함합니다.
설명
공용 구조체는 원본 사각형을 모두 포함하는 가장 작은 사각형입니다.
참고 항목
두 사각형을 모두 정규화해야 하거나 이 함수가 실패할 수 있습니다. 이 함수를 호출하기 전에 사각형을 정규화하도록 호출 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
및(또는 cx
cy
) 매개 변수가 '의 위치에 추가 CRect
y
됩니다.
세 번째 오버로드는 매개 변수의 각 멤버에 지정된 단위 수만큼 확장되는 것과 같은 CRect
새 CRect
값을 반환합니다.
예시
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
한 결과입니다.
설명
매개 변수 x
및 y
(또는cy
cx
) 매개 변수는 '의 위치에서 빼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
rect2의 CRect
교집합인 값을 반환합니다.
CRect operator&(const RECT& rect2) const throw();
매개 변수
rect2
또는 .를 RECT
CRect
포함합니다.
Return Value
의 교집 CRect
rect2
합인 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 CRect
를 CRect
반환합니다 rect2
.
CRect operator|(const RECT&
rect2) const throw();
매개 변수
rect2
또는 .를 RECT
CRect
포함합니다.
Return Value
의 합체 CRect
rect2
인 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
의 차원을 CRect
빼 lpRectSrc2
lpRectSrc1
는 것과 같게 만듭니다.
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
원본 사각형이 RECT
CRect
포함된 또는 해당 사각형을 가리킵니다.
lpRect2
원본 사각형이 RECT
CRect
포함된 또는 해당 사각형을 가리킵니다.
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);