CRgn::CreateEllipticRgn
Crée une zone elliptique.
BOOL CreateEllipticRgn(
int x1,
int y1,
int x2,
int y2
);
Paramètres
x1
Spécifie la coordonnée x logique du coin supérieur gauche du rectangle englobant de l'ellipse.y1
Spécifie l'ordonnée logique du coin supérieur gauche du rectangle englobant de l'ellipse.x2
Spécifie la coordonnée x logique de l'angle inférieur droit du rectangle englobant de l'ellipse.y2
Spécifie l'ordonnée logique de l'angle inférieur droit du rectangle englobant de l'ellipse.
Valeur de retour
Une valeur différente de zéro si l'opération a réussi ; sinon 0.
Notes
La région définie par le rectangle englobant spécifié par x1, y1, x2, et y2.La région est stockée dans l'objet d' CRgn .
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 avec la fonction d' CreateEllipticRgn , une application doit sélectionner la zone en dehors de le contexte de périphérique et utiliser la fonction d' DeleteObject pour la supprimer.
Exemple
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 ));
Configuration requise
Header: afxwin.h