Partilhar via


CDC::Pie

Desenha uma forma dada cunha pizza- desenhar um arco elíptico cujo centro e os dois pontos de extremidade tenha ingressado por linhas.

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 a coordenada x do canto superior esquerdo do retângulo delimitador (em unidades lógicas).

  • y1
    Especifica a coordenada y do canto superior esquerdo do retângulo delimitador (em unidades lógicas).

  • x2
    Especifica a coordenada x do canto inferior direito do retângulo delimitador (em unidades lógicas).

  • y2
    Especifica a coordenada y do canto inferior direito do retângulo delimitador (em unidades lógicas).

  • x3
    Especifica a coordenada x do ponto de partida do arco (em unidades lógicas).Este ponto não tem que encontrar-se exatamente do arco.

  • y3
    Especifica a coordenada y do ponto de partida do arco (em unidades lógicas).Este ponto não tem que encontrar-se exatamente do arco.

  • x4
    Especifica a coordenada x do ponto final do arco (em unidades lógicas).Este ponto não tem que encontrar-se exatamente do arco.

  • y4
    Especifica a coordenada y do ponto final do arco (em unidades lógicas).Este ponto não tem que encontrar-se exatamente do arco.

  • lpRect
    Especifica o retângulo delimitador.Você pode passar um objeto de CRect ou um ponteiro a estrutura de RECT para esse parâmetro.

  • ptStart
    Especifica o ponto de partida do arco.Este ponto não tem que encontrar-se exatamente do arco.Você pode passar uma estrutura de PONTO ou um objeto de CPoint para esse parâmetro.

  • ptEnd
    Especifica o ponto final do arco.Este ponto não tem que encontrar-se exatamente do arco.Você pode passar uma estrutura de POINT ou um objeto de CPoint para esse parâmetro.

Valor de retorno

Diferente de zero se a função é com êxito; se não 0.

Comentários

O centro do arco é o centro do retângulo delimitador especificado por x1, por y1, por x2, e por y2 (ou por lpRect).Iniciar e os pontos finais do arco são especificados por x3, por y3, por x4, e por y4 (ou por ptStart e por ptEnd).

O arco é desenhado com uma caneta selecionada, movendo em um sentido anti-horário.Duas linhas são desenhadas adicionais de cada ponto de extremidade no centro do arco.A área pizza- determinada forma é preenchida com o pincel atual.Se x3 é igual x4 e y3 é igual y4, o resultado é uma elipse com uma única linha do centro da elipse ao ponto (x3, y3) ou (x4, y4).

A figura desenhada por essa função estende até mas não inclui as coordenadas da direita e inferior.Isso significa que a altura da figura a y2 – y1 e a largura da figura são x2 – x1.A largura e altura do retângulo delimitador devem ser maiores que 2 unidades e menor que 32.767 unidades.

Exemplo

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

Cabeçalho: afxwin.h

Consulte também

Referência

CDC Class

Gráfico de hierarquia

CDC::Chord

Pie

Estrutura RECT

Estrutura do ponto

Classe de CRect

Classe de CPoint