CRgn::CreateRoundRectRgn
Crea una región rectangular con esquinas redondeadas almacenada en el objeto de CRgn .
BOOL CreateRoundRectRgn(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3
);
Parámetros
x1
Especifica la coordenada x lógica de la esquina superior izquierda de la región.y1
Especifica la coordenada y lógica de la esquina superior izquierda de la región.x2
Especifica la coordenada x lógica de la esquina inferior derecha de la región.y2
Especifica la coordenada y lógica de la esquina inferior derecha de la región.x3
Especifica el ancho de la elipse utilizada para crear las esquinas redondeadas.y3
Especifica el alto de la elipse utilizada para crear las esquinas redondeadas.
Valor devuelto
Distinto de cero si la operación se realizó correctamente; si no 0.
Comentarios
El tamaño de una región está limitado a 32.767 por 32.767 unidades lógicas o a de memoria de, lo que sea menor.
Cuando una aplicación ha terminado de utilizar una región creada con la función de CreateRoundRectRgn , debe seleccionar la región fuera del contexto de dispositivo y utilizar la función miembro de CGDIObject:: DeleteObject para quitarlo.
Ejemplo
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 ));
Requisitos
encabezado: afxwin.h