CDC::Pie
Zeichnet einen Kreis-gestalteten Keil durch Zeichnen eines elliptischen Bogens, dessen Mittelpunkt und zwei Endpunkte von Zeilen verknüpft werden.
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
);
Parameter
x1
Gibt die X-Koordinate der oberen linken Ecke des umgebenden Rechtecks an (in logischen Einheiten).y1
Gibt die Y-Koordinate der oberen linken Ecke des umgebenden Rechtecks an (in logischen Einheiten).x2
Gibt die X-Koordinate der rechten unteren Ecke des umgebenden Rechtecks an (in logischen Einheiten).y2
Gibt die Y-Koordinate der unteren rechten Ecke des umgebenden Rechtecks an (in logischen Einheiten).x3
Gibt die X-Koordinate des Anfangspunkts des Bogens an (in logischen Einheiten). Dieser Punkt muss nicht auf dem Bogen genau liegen.y3
Gibt die Y-Koordinate des Anfangspunkts des Bogens an (in logischen Einheiten). Dieser Punkt muss nicht auf dem Bogen genau liegen.x4
Gibt die X-Koordinate des Endpunkts des Bogens an (in logischen Einheiten). Dieser Punkt muss nicht auf dem Bogen genau liegen.y4
Gibt die y-Koordinate des Endpunkts des Bogens an (in logischen Einheiten). Dieser Punkt muss nicht auf dem Bogen genau liegen.lpRect
Gibt das umschließende Rechteck. Sie können entweder ein CRect-Objekt oder einen Zeiger auf eine Struktur RECT für diesen Parameter übergeben.ptStart
Gibt den Ausgangspunkt des Bogens an. Dieser Punkt muss nicht auf dem Bogen genau liegen. Sie können eine PUNKT-Struktur oder ein CPoint-Objekt für diesen Parameter übergeben.ptEnd
Gibt den Endpunkt des Bogens an. Dieser Punkt muss nicht auf dem Bogen genau liegen. Sie können eine POINT-Struktur oder ein CPoint-Objekt für diesen Parameter übergeben.
Rückgabewert
ungleich 0 (null), wenn die Funktion erfolgreich; 0 andernfalls.
Hinweise
Der Mittelpunkt des Bogens ist der Mittelpunkt des umgebenden Rechteck, das durch x1, y1, x2 und y2 (oder durch lpRect) angegeben wird. Das Starten und die Endpunkte des Bogens werden durch x3, y3, x4 und y4 angegeben (oder durch ptStart und ptEnd).
Der Bogen wird mit dem ausgewählten Stift gezeichnet und wird in eine Richtung gegen den Uhrzeigersinn. Zwei zusätzliche Zeilen werden von jedem Endpunkt zum Mittelpunkt des Bogens gezeichnet. Der Kreis-gestaltete Bereich ist dem aktuellen Pinsel gefüllt. Wenn x3x4 entspricht und y3y4 entspricht, ist das Ergebnis eine Ellipse mit einer einzelnen Zeile vom Mittelpunkt der Ellipse zum Punkt (x3, y3) oder (x4, y4).
Die Abbildung, die von dieser Funktion gezeichnet wird, gilt, bis zu jedoch umfasst nicht die Recht- und Unterseitenkoordinaten. Dies bedeutet, dass die Höhe der Abbildung y2 - y1 und die Breite der Abbildung ist x2 - x1 ist. müssen die Breite und Höhe des umgebenden Rechtecks als 2 Einheiten und weniger als 32.767 Einheiten größer sein.
Beispiel
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);
}
Anforderungen
Header: afxwin.h