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