Поделиться через


CDC::Pie

Рисует пирог- форменный клин путем рисования эллиптической дуги по центру, и 2 конечной точки соединения линий.

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  
);

Параметры

  • x1
    Указывает координату по оси x верхнего левого угла ограничивающего прямоугольника верхн- (в логических единицах).

  • y1
    Указывает координату по оси y верхнего левого угла ограничивающего прямоугольника верхн- (в логических единицах).

  • x2
    Задает координату правого верхнего угла ограничивающего прямоугольника по оси x низк- (в логических единицах).

  • y2
    Указывает координату по оси y правого верхнего угла ограничивающего прямоугольника низк- (в логических единицах).

  • x3
    Указывает координату x начальной точки дуги (в логических единицах). Данная точка не должен находиться на дуге.

  • y3
    Указывает координату y начальной точки дуги (в логических единицах). Данная точка не должен находиться на дуге.

  • x4
    Задает координату х конечная точка дуги (в логических единицах). Данная точка не должен находиться на дуге.

  • y4
    Указывает координату y конечной точкой дуги (в логических единицах). Данная точка не должен находиться на дуге.

  • lpRect
    Указывает ограничивающий прямоугольник. Можно передать объект CRect или указатель на структуру RECT для этого параметра.

  • ptStart
    Определяет начальную точку дуги. Данная точка не должен находиться на дуге. Можно передавать или структуру ТОЧКА или объект CPoint для этого параметра.

  • ptEnd
    Указывает конечную точка дуги. Данная точка не должен находиться на дуге. Можно передавать или структуру POINT или объект CPoint для этого параметра.

Возвращаемое значение

Ненулевой если функция успешно; в противном случае – значение 0.

Заметки

Центр дуги по центру ограничивающего прямоугольника указанного x1, y1, x2 и y2 (или lpRect). Начальную и конечную точки дуги определяются x3, y3, x4 и y4 (или ptStart и ptEnd).

Дуга нарисована выделите перо, при перемещении в направлении против часовых стрелок. 2 Дополнительных линии нарисована из каждой конечной точки к центру дуги. Расстега- форменная область заполняется текущий кистью. Если x3 равно x4 и y3 равно y4, то результат эллипс с отдельной линией от центра эллипса до точки с координатами (x3, y3) или (x4, y4).

Диаграмма выписанная расширяется до этой функцией, но не включает координаты правах и снизу. Это означает, что высота диаграммы y2 – y1 и ширину элемента диаграммы x2 – x1. И ширина и высота ограничивающего прямоугольника должно быть больше 2 единиц и меньше 32.767 единиц.

Пример

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);
}

Требования

Header: afxwin.h

См. также

Ссылки

Класс CDC

Диаграмма иерархии

CDC::Chord

Pie

Структура RECT

Структура POINT

Класс CRect

Класс CPoint