CRgn::CreateRectRgnIndirect
Erstellt einen rechteckigen Bereich, der im CRgn-Objekt gespeichert wird.
BOOL CreateRectRgnIndirect(
LPCRECT lpRect
);
Parameter
lpRect
Zeigt auf RECT-Struktur oder zu CRect-Objekt, die die logischen Koordinaten von dem linken oberen und der rechten unteren Ecke des Bereichs enthält. Die RECT-Struktur hat das folgende Format:typedef struct tagRECT {
int left;
int top;
int right;
int bottom;
} RECT;
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 es mithilfe eines Bereichs beendet, der von CreateRectRgnIndirect erstellt wird, sollte eine Anwendung die CGDIObject::DeleteObject-Memberfunktion verwenden, um den Bereich zu entfernen.
Beispiel
CRgn rgnA, rgnB, rgnC;
CRect rectA(50, 50, 150, 150);
CRect rectB(100, 50, 200, 150);
VERIFY(rgnA.CreateRectRgnIndirect(&rectA));
VERIFY(rgnB.CreateEllipticRgnIndirect(&rectB));
VERIFY(rgnC.CreateRectRgn( 0, 0, 50, 50 ));
int nCombineResult = rgnC.CombineRgn( &rgnA, &rgnB, RGN_AND );
ASSERT( nCombineResult != ERROR && nCombineResult != NULLREGION );
CBrush brA, brB, brC;
VERIFY(brA.CreateSolidBrush( RGB(255, 0, 0) ));
VERIFY(pDC->FrameRgn( &rgnA, &brA, 2, 2 )); // rgnA Red
VERIFY(brB.CreateSolidBrush( RGB(0, 255, 0) ));
VERIFY(pDC->FrameRgn( &rgnB, &brB, 2, 2 )); // rgnB Green
VERIFY(brC.CreateSolidBrush( RGB(0, 0, 255) )); // rgnC Blue
VERIFY(pDC->FrameRgn( &rgnC, &brC, 2, 2 ));
Anforderungen
Header: afxwin.h