CDC::Pie
파이 모양의 중심이 및 두 끝점 선으로 조인 된 타원형 호 그리기로 그립니다.
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 좌표를 지정합니다.x 3
X 좌표 (논리 단위)에 부채꼴의 시작점을 지정합니다.이 지점을 정확히 호 상의 필요가 없습니다.y3
Y 좌표 (논리 단위)에 부채꼴의 시작점을 지정합니다.이 지점을 정확히 호 상의 필요가 없습니다.x4
(논리 단위)에 호 끝점의 x 좌표를 지정합니다.이 지점을 정확히 호 상의 필요가 없습니다.y4
(논리 단위)에 호 끝점의 y 좌표를 지정합니다.이 지점을 정확히 호 상의 필요가 없습니다.lpRect
경계 사각형을 지정합니다.하나를 통과할 수는 CRect 개체 또는 포인터는 RECT 매개 변수의 구조.ptStart
호의 시작점을 지정합니다.이 지점을 정확히 호 상의 필요가 없습니다.하나를 통과할 수는 포인트 구조 또는 CPoint 이 매개 변수에 대 한 개체.ptEnd
호의 끝점을 지정합니다.이 지점을 정확히 호 상의 필요가 없습니다.하나를 통과할 수는 포인트 구조 또는 CPoint 이 매개 변수에 대 한 개체.
반환 값
함수가 성공 하면 0이 아닌. 그렇지 않으면 0입니다.
설명
지정 된 경계 사각형의 중심 센터 호입니다 x1, y1, x2, 및 y2 (또는 lpRect).시작과 끝 지점은 호로 지정 된 x 3, y3, x4, 및 y4 (또는 ptStart 및 ptEnd).
호를 시계 반대 방향으로 이동 하 여 선택한 펜으로 그립니다.두 줄에서 각 끝점은 호 중심에 그려집니다.현재 브러시로 부채꼴 모양 영역을 채웁니다.경우 x 3 인 x4 및 y3 인 y4, 발생 한 줄에서 타원의 중심 지점으로 타원 (x 3, y3) 또는 (x4, y4).
이 함수에 의해 그린 그림을 확장 하지만 오른쪽 아래 좌표를 포함 합니다.이 그림의 높이 것 y2 - y1 및 그림의 너비가 x2 - x1.경계 사각형의 높이 너비 2 단위와 32767 보다 작은 단위 보다 커야 합니다.
예제
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);
}
요구 사항
헤더: afxwin.h