다음을 통해 공유


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

참고 항목

참조

CDC 클래스

계층 구조 차트

CDC::Chord

Pie

RECT 구조체

POINT 구조체

CRect Class

CPoint Class