Share via


CDC::Pie

Dibuja una cuña empanada- formada dibujando un arco elíptico cuyo central y dos extremos están combinados por las líneas.

BOOL Pie(
   int x1,
   int y1,
   int x2,
   int y2,
   int x3,
   int y3,
   int x4,
   int y4 
);
BOOL Pie(
   LPCRECT lpRect,
   POINT ptStart,
   POINT ptEnd 
);

Parámetros

  • x1
    Especifica la coordenada x de la esquina superior izquierda del rectángulo delimitador (en unidades lógicas).

  • y1
    Especifica la coordenada y de la esquina superior izquierda del rectángulo delimitador (en unidades lógicas).

  • x2
    Especifica la coordenada x de la esquina inferior derecha del rectángulo delimitador (en unidades lógicas).

  • y2
    Especifica la coordenada y de la esquina inferior derecha del rectángulo delimitador (en unidades lógicas).

  • x3
    Especifica la x- coordenada el punto inicial del arco (en unidades lógicas).este punto no tiene que mentir exactamente en el arco.

  • y3
    Especifica la y- coordenada el punto inicial del arco (en unidades lógicas).este punto no tiene que mentir exactamente en el arco.

  • x4
    Especifica la x- coordenada de extremo del arco (en unidades lógicas).este punto no tiene que mentir exactamente en el arco.

  • y4
    Especifica la y- coordenada de extremo del arco (en unidades lógicas).este punto no tiene que mentir exactamente en el arco.

  • lpRect
    Especifica el rectángulo delimitador.Puede pasar un objeto de CRect o un puntero a una estructura de RECT para este parámetro.

  • ptStart
    Especifica el punto inicial del arco.este punto no tiene que mentir exactamente en el arco.Puede pasar una estructura de puntos o un objeto de CPoint para este parámetro.

  • ptEnd
    Especifica el extremo del arco.este punto no tiene que mentir exactamente en el arco.Puede pasar una estructura de puntos o un objeto de CPoint para este parámetro.

Valor devuelto

Distinto de cero si la función es correcta; si no 0.

Comentarios

El centro del arco es el centro del rectángulo delimitador especificado por x1, y1, x2, y y2 (por lpRect).Los puntos el inicio y de finalización del arco se especifican mediante x3, y3, x4, y y4 (por ptStart y ptEnd).

El arco se dibuja con el lápiz seleccionado, un desplazamiento en una dirección inicial.Dos líneas adicionales se extraen de cada extremo en el centro del arco.El área empanada- cuyas referencias se rellena con el pincel actual.Si x3 es igual a x4 y y3 es igual a y4, el resultado es una elipse con una única línea del centro de la elipse al punto (x3, y3) o (x4, y4).

La ilustración dibujado por esta función extiende hasta pero no incluye las coordenadas de la derecha e inferior.esto significa que el alto de la figura es y2 – y1 y el ancho de la figura es x2 – x1.El ancho y el alto del rectángulo delimitador deben ser mayores que 2 unidades y menos de 32.767 unidades.

Ejemplo

void CDCView::DrawPie(CDC* pDC)
{
   // Fill the client area with a simple pie chart. A
   // big blue slice covers 75% of the pie, from
   // 6 o'clock to 3 o'clock. This portion is filled
   // with blue and has a blue edge. The remaining 25%
   // is filled with a red, diagonal hatch and has
   // a red edge.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush* pOldBrush;
   CPen* pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.

   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Pie(rectClient,
      CPoint(rectClient.right, rectClient.CenterPoint().y),
      CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter slice from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen with
   // the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Same parameters, but reverse start and end points.
   pDC->Pie(rectClient,
      CPoint(rectClient.CenterPoint().x, rectClient.right),
      CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

Requisitos

encabezado: afxwin.h

Vea también

Referencia

Clase de la CDC

Gráfico de jerarquía

CDC::Chord

Pie

RECT (Estructura)

POINT (Estructura)

Clase de CRect

Clase de CPoint