共用方式為


CRgn::CreateEllipticRgn

建立橢圓形區域。

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

參數

  • x1
    指定橢圓形的週框 (Bounding Rectangle) 左上角的邏輯 X 座標。

  • y1
    指定橢圓形的週框 (Bounding Rectangle) 左上角的邏輯 Y 座標。

  • x2
    指定橢圓形的週框 (Bounding Rectangle) 右下角的邏輯 X 座標。

  • y2
    指定橢圓形的週框 (Bounding Rectangle) 右下角的邏輯 Y 座標。

傳回值

不是零,如果作業成功,則為 0。

備註

區域是由 x1、 y1、 x2和 y2指定的週框所定義。 這個區域 CRgn 在物件中。

區域的大小限制為記憶體 32,767 x 32,767 個邏輯單位或 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 ));   

需求

Header: afxwin.h

請參閱

參考

CRgn 類別

階層架構圖表

CRgn::CreateEllipticRgnIndirect

CreateEllipticRgn