CDC::pie
Rysuje kołowy w kształcie klina przez rysowanie łuku eliptycznego, których Centrum i dwa punkty końcowe są połączone liniami.
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
);
Parametry
x1
Określa współrzędną x lewego górnego rogu prostokąta obwiedni (w jednostkach logicznych).y1
Określa współrzędną y lewego górnego rogu prostokąta obwiedni (w jednostkach logicznych).x2
Określa współrzędną x w prawym dolnym rogu prostokąta obwiedni (w jednostkach logicznych).y2
Określa współrzędną y dolnym rogu prostokąta obwiedni (w jednostkach logicznych).x 3
Określa współrzędną x punktu początkowego łuku (w jednostkach logicznych).Ten punkt nie musi znajdować się dokładnie na łuku.y3
Określa współrzędną y punktu początkowego łuku (w jednostkach logicznych).Ten punkt nie musi znajdować się dokładnie na łuku.x4
Określa współrzędną x punktu końcowego łuku (w jednostkach logicznych).Ten punkt nie musi znajdować się dokładnie na łuku.y4
Określa współrzędną y punktu końcowego łuku (w jednostkach logicznych).Ten punkt nie musi znajdować się dokładnie na łuku.lpRect
Określa prostokąta obwiedni.Można przekazywać albo CRect lub wskaźnik do obiektu RECT struktury dla tego parametru.ptStart
Określa początkowy punkt łuku.Ten punkt nie musi znajdować się dokładnie na łuku.Można przekazywać albo punkt struktury lub CPoint obiektu dla tego parametru.ptEnd
Określa punktu końcowego łuku.Ten punkt nie musi znajdować się dokładnie na łuku.Można przekazywać albo punkt struktury lub CPoint obiektu dla tego parametru.
Wartość zwracana
Niezerowa, jeśli funkcja jest pomyślne; 0 inaczej.
Uwagi
Pośrodku łuku jest środek prostokąta obwiedni, określonej przez x1, y1, x2, i y2 (lub lpRect).Początkowe i końcowe punkty łuku są określone przez x 3, y3, x4, i y4 (lub ptStart i ptEnd).
Łuku dla wybranego pióra w kierunku przeciwnym kierunku.Dwa dodatkowe wiersze są pobierane z każdego punktu końcowego łuku Centrum.Kształt kołowego obszar jest wypełniany aktualnego pędzla.Jeśli x 3 jest równe x4 i y3 jest równe y4, wynik jest elipsę o jednym wierszu środka elipsy do punktu (x 3, y3) lub (x4, y4).
Rysunek przez tę funkcję rozciąga się do, ale nie obejmuje współrzędne prawej i dolnej.Oznacza to, że wysokość rysunku jest y2 — y1 i szerokości rysunku jest x2 — x1.Szerokość i wysokość prostokąta obwiedni musi być większa niż 2 i jednostek mniej niż 32 767.
Przykład
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);
}
Wymagania
Nagłówek: afxwin.h