다음을 통해 공유


CRect::SubtractRect

치수의 수는 CRect 의 빼기와 같은 lpRectSrc2 에서 lpRectSrc1.

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

매개 변수

  • lpRectSrc1
    가리키는 RECT 구조 또는 CRect 개체에서 사각형입니다 뺄 수 있습니다.

  • lpRectSrc2
    가리키는 RECT 구조 또는 CRect 사각형에서 뺄 수 있는 가리키는 개체를 여는 lpRectSrc1 매개 변수.

반환 값

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

설명

모든 지점에 있는 작은 사각형을 빼기입니다 lpRectScr1 의 교차 지점에 없는 lpRectScr1 및 lpRectScr2.

지정 된 사각형 lpRectSrc1 지정 된 사각형에서 지정 하는 경우 변경 되지 것입니다 lpRectSrc2 의해 지정 된 사각형 안에 완전히 겹치지 않는 lpRectSrc1 하나 이상의의 x 방향 또는 y 방향의.

예를 들어, 경우 lpRectSrc1 된 (10,10, 100,100) 및 lpRectSrc2 되었습니다 (50,50, 150,150) 사각형으로를 가리키는 lpRectSrc1 함수가 반환 하는 경우 변경 되지 않은 것입니다. 그러나 경우 lpRectSrc1 되었습니다 (10,10, 100,100) 및 lpRectSrc2 되었습니다 (50,10, 150,150) 사각형 가리키는 하 여 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);   

요구 사항

헤더: atltypes.h

참고 항목

참조

CRect Class

계층 구조 차트

CRect::operator -

CRect::operator -=

CRect::IntersectRect

CRect::UnionRect

CRect::NormalizeRect

SubtractRect