다음을 통해 공유


CRgn::CreateEllipticRgn

타원형의 영역을 만듭니다.

BOOL CreateEllipticRgn( 
   int x1, 
   int y1, 
   int x2, 
   int y2  
);

매개 변수

  • x1
    타원의 경계 사각형의 왼쪽 위 모퉁이의 x 좌표 논리를 지정합니다.

  • y1
    타원의 경계 사각형의 왼쪽 위 모퉁이의 y 좌표 논리를 지정합니다.

  • x2
    타원의 경계 사각형의 오른쪽 아래 모퉁이의 x 좌표 논리를 지정합니다.

  • y2
    타원의 경계 사각형의 오른쪽 아래 모퉁이의 y 좌표 논리를 지정합니다.

반환 값

작업이 성공 하면 0이 아닌. 그렇지 않으면 0입니다.

설명

영역 지정 된 경계 사각형에 의해 정의 됩니다 x1, y1, x2, 및 y2. 영역에 저장 되는 CRgn 개체입니다.

크기의 영역에서 32767 32767 논리 단위 또는 64k의 메모리 제한, 작은 값.

가 종료 만든 영역을 사용 시는 CreateEllipticRgn 함수 영역을 장치 컨텍스트 및 사용할 응용 프로그램을 선택 해야는 DeleteObject 함수를 제거 합니다.

예제

CRgn   rgnA, rgnB, rgnC;

VERIFY(rgnA.CreateEllipticRgn(200, 100, 350, 250));
VERIFY(rgnB.CreateRectRgn( 0, 0, 50, 50 ));
VERIFY(rgnB.CopyRgn( &rgnA ));
int nOffsetResult = rgnB.OffsetRgn( -75, 75 );
ASSERT( nOffsetResult != ERROR && nOffsetResult != NULLREGION );

VERIFY(rgnC.CreateRectRgn( 0, 0, 1, 1));
int nCombineResult = rgnC.CombineRgn( &rgnA, &rgnB, RGN_AND );
ASSERT( nCombineResult != ERROR && nOffsetResult != NULLREGION );

CBrush brA, brB, brC;
VERIFY(brC.CreateHatchBrush( HS_FDIAGONAL, RGB(0, 0, 255) )); // Blue
VERIFY(pDC->FillRgn( &rgnC, &brC ));
VERIFY(brA.CreateSolidBrush( RGB(255, 0, 0) ));  // rgnA Red
VERIFY(pDC->FrameRgn( &rgnA, &brA, 2, 2 ));
VERIFY(brB.CreateSolidBrush( RGB(0, 255, 0) ));  // rgnB Green
VERIFY(pDC->FrameRgn( &rgnB, &brB, 2, 2 ));   

요구 사항

헤더: afxwin.h

참고 항목

참조

CRgn 클래스

계층 구조 차트

CRgn::CreateEllipticRgnIndirect

CreateEllipticRgn