Compartir a través de


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

Vea también

Referencia

CRgn (clase)

Gráfico de jerarquías

CRgn::CreateRectRgn

CRgn::CreateRectRgnIndirect

CreateRoundRectRgn