CRgn::CreateRectRgnIndirect
Crée une zone rectangulaire stockée dans l'objet d' CRgn .
BOOL CreateRectRgnIndirect(
LPCRECT lpRect
);
Paramètres
lpRect
Les points à RECT structure ou l'objet d' CRect qui contiennent les coordonnées logiques du supérieur gauche et des angles inférieur droit de la zone. La structure d' RECT a la forme suivante :typedef struct tagRECT {
int left;
int top;
int right;
int bottom;
} RECT;
Valeur de retour
Une valeur différente de zéro si l'opération a réussi ; sinon 0.
Notes
La taille d'une zone est limitée à 32.767 par 32.767 unités logiques ou ko à de mémoire, ce qui est plus petit.
Lorsqu'il a terminé d'utiliser une zone créée par CreateRectRgnIndirect, une application doit utiliser la fonction membre de CGDIObject::DeleteObject pour supprimer la zone.
Exemple
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 ));
Configuration requise
Header: afxwin.h