CRgn::CreateRoundRectRgn
Erstellt einen rechteckigen Bereich mit abgerundeten Ecken, der im CRgn-Objekt gespeichert wird.
BOOL CreateRoundRectRgn(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3
);
Parameter
x1
Gibt die logische x-Koordinate der linken oberen Ecke des Bereichs an.y1
Gibt die logische y-Koordinate der linken oberen Ecke des Bereichs an.x2
Gibt die logische X-Koordinate der rechten unteren Ecke des Bereichs an.y2
Gibt die logische y-Koordinate der rechten unteren Ecke des Bereichs an.x3
Gibt die Breite der Ellipse an, die verwendet wird, um die abgerundeten Ecken zu erstellen.y3
Gibt die Höhe der Ellipse an, die verwendet wird, um die abgerundeten Ecken zu erstellen.
Rückgabewert
Ungleich 0 (null), wenn der Vorgang erfolgreich war; 0 andernfalls.
Hinweise
Die Größe eines Bereichs ist auf 32.767 durch 32.767 logische Einheiten oder zu von je des Arbeitsspeichers beschränkt, das kleiner ist.
Wenn eine Anwendung mit eines Bereichs beendet, der mit der CreateRoundRectRgn-Funktion erstellt wird, sollte sie den Bereich aus dem Gerätekontext out auswählen und die CGDIObject::DeleteObject-Memberfunktion verwenden, um sie zu entfernen.
Beispiel
CRgn rgnA, rgnB, rgnC;
VERIFY(rgnA.CreateRoundRectRgn( 50, 50, 150, 150, 30, 30 ));
VERIFY(rgnB.CreateRoundRectRgn( 200, 75, 250, 125, 50, 50 ));
VERIFY(rgnC.CreateRectRgn( 0, 0, 50, 50 ));
int nCombineResult = rgnC.CombineRgn( &rgnA, &rgnB, RGN_OR );
ASSERT( nCombineResult != ERROR && nCombineResult != NULLREGION );
CBrush brA, brB, brC;
VERIFY(brA.CreateSolidBrush( RGB(255, 0, 0) ));
VERIFY(pDC->FillRgn( &rgnA, &brA)); // rgnA Red Filled
VERIFY(brB.CreateSolidBrush( RGB(0, 255, 0) ));
VERIFY(pDC->FillRgn( &rgnB, &brB)); // rgnB Green Filled
VERIFY(brC.CreateSolidBrush( RGB(0, 0, 255) )); // rgnC Blue
VERIFY(pDC->FrameRgn( &rgnC, &brC, 2, 2 ));
Anforderungen
Header: afxwin.h