Partilhar via


CDC::Pie

Desenha uma forma de pizza Cunha desenhando um arco elíptico cujo centralizar e dois pontos de extremidade são unidos 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).

  • x 3
    Especifica a coordenada x do ponto inicial do arco (em unidades lógicas).Esse ponto não precisa estar exatamente no arco.

  • y3
    Especifica a coordenada y do ponto inicial do arco (em unidades lógicas).Esse ponto não precisa estar exatamente no arco.

  • x4
    Especifica a coordenada x do ponto de extremidade do arco (em unidades lógicas).Esse ponto não precisa estar exatamente no arco.

  • y4
    Especifica a coordenada y do ponto de extremidade do arco (em unidades lógicas).Esse ponto não precisa estar exatamente no arco.

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

  • ptStart
    Especifica o ponto de partida do arco.Esse ponto não precisa estar exatamente no arco.Você pode passar em um PONTO estrutura ou um CPoint objeto para esse parâmetro.

  • ptEnd
    Especifica o ponto de extremidade do arco.Esse ponto não precisa estar exatamente no arco.Você pode passar em um PONTO estrutura ou um CPoint objeto para esse parâmetro.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

O centralizar do arco é o centralizar do retângulo delimitador especificado por x1, y1, x2, e y2 (ou por lpRect). Os pontos inicial e final do arco são especificados por x 3, y3, x4, e y4 (ou por ptStart e ptEnd).

O arco é desenhado com a caneta selecionada, mover no sentido.Duas linhas adicionais são desenhadas de cada ponto de extremidade ao centralizar do arco.A área em forma de pizza é preenchida com o pincel corrente.If x 3 equals x4 e y3 é igual a y4, o resultado é uma elipse com uma única linha do centralizar da elipse para o ponto (x 3, y3) ou ()x4, y4).

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

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

Classe CDC

Gráfico de hierarquia

CDC::Chord

Pie

RECT estrutura

Estrutura de ponto

Classe CRect

Classe CPoint

Outros recursos

Membros do CDC