CDC::Pie
Disegna un cuneo grafico a torta- formato tracciando un arco ellittico di cui il centro e due endpoint sono uniti dalle righe.
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
);
Parametri
x1
Specifica la coordinata x dell'angolo superiore sinistro del rettangolo di delimitazione (in unità logiche).y1
Specifica la coordinata y dell'angolo superiore sinistro del rettangolo di delimitazione (in unità logiche).x2
Specifica la coordinata x l'angolo inferiore destro del rettangolo di delimitazione (in unità logiche).y2
Specifica la coordinata y l'angolo inferiore destro del rettangolo di delimitazione (in unità logiche).x3
Specifica la coordinata x del punto iniziale dell'arco (in unità logiche). Questo passaggio non deve rientrare esattamente nell'arco.y3
Specifica la coordinata y del punto iniziale dell'arco (in unità logiche). Questo passaggio non deve rientrare esattamente nell'arco.x4
Specifica la coordinata x dell'endpoint dell'arco (in unità logiche). Questo passaggio non deve rientrare esattamente nell'arco.y4
Specifica la coordinata y dell'endpoint dell'arco (in unità logiche). Questo passaggio non deve rientrare esattamente nell'arco.lpRect
Specifica il rettangolo di delimitazione. È possibile passare un oggetto CRect o un puntatore a una struttura RECT per questo parametro.ptStart
Specifica il punto iniziale dell'arco. Questo passaggio non deve rientrare esattamente nell'arco. È possibile passare una struttura QUESTION o un oggetto CPoint per questo parametro.ptEnd
Specificare l'endpoint dell'arco. Questo passaggio non deve rientrare esattamente nell'arco. È possibile passare una struttura di punti o un oggetto CPoint per questo parametro.
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario 0.
Note
Il centro dell'arco è il centro del rettangolo di delimitazione specificato da x1, da y1, da x2e da y2 (o da lpRect). Avviare e quelli finali dell'arco vengono specificati da x3, da y3, da x4e da y4 (o da ptStart e da ptEnd).
Viene disegnato l'arco con la penna selezionata, il passaggio in senso antiorario. Due righe aggiuntive vengono disegnate da ogni endpoint il centro dell'arco. L'area grafico a torta-) verrà riempita con corrente. Se x3 equivale a x4 e y3 equivale a y4, il risultato è un'ellisse con una sola riga dal centro dell'ellisse al punto (x3, y3) o (x4, y4).
Nella figura tracciata da questa funzione estende fino a ma non le coordinate del basso e a destra. Ciò significa che l'altezza della figura è y2 – y1 e la larghezza della figura è x2 – x1. La larghezza e l'altezza del rettangolo di delimitazione devono essere maggiori di 2 unità e meno di 32.767 unità.
Esempio
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);
}
Requisiti
Header: afxwin.h