CRgn::CreateRoundRectRgn
Crée une zone rectangulaire à angles arrondis stockée dans l'objet d' CRgn .
BOOL CreateRoundRectRgn(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3
);
Paramètres
x1
Spécifie la coordonnée x logique de l'angle supérieur gauche de la zone.y1
Spécifie l'ordonnée logique de l'angle supérieur gauche de la zone.x2
Spécifie la coordonnée x logique de l'angle inférieur droit de la zone.y2
Spécifie l'ordonnée logique de l'angle inférieur droit de la zone.x3
Spécifie la largeur de l'ellipse utilisée pour créer des angles arrondis.y3
Spécifie la hauteur de l'ellipse utilisée pour créer des angles arrondis.
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'une application a terminé d'utiliser une zone créée avec la fonction d' CreateRoundRectRgn , elle doit sélectionner la zone en dehors de le contexte de périphérique et utiliser la fonction membre de CGDIObject::DeleteObject pour la supprimer.
Exemple
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 ));
Configuration requise
Header: afxwin.h