CDC::Arc
Zeichnet einen elliptischen Bogen.
BOOL Arc(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
int x4,
int y4
);
BOOL Arc(
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 Punkts an, der den Ausgangspunkt des Bogens definiert (in logischen Einheiten). Dieser Punkt muss nicht auf dem Bogen genau liegen.y3
Gibt die y-Koordinate des Punkts an, der den Ausgangspunkt des Bogens definiert (in logischen Einheiten). Dieser Punkt muss nicht auf dem Bogen genau liegen.x4
Gibt die X-Koordinate des Punkts an, der den Endpunkt des Bogens definiert (in logischen Einheiten). Dieser Punkt muss nicht auf dem Bogen genau liegen.y4
Gibt die y-Koordinate des Punkts an, der den Endpunkt des Bogens definiert (in logischen Einheiten). Dieser Punkt muss nicht auf dem Bogen genau liegen.lpRect
Gibt das umschließende Rechteck an (in logischen Einheiten). Sie können entweder LPRECT oder ein CRect-Objekt für diesen Parameter übergeben.ptStart
Gibt die x- und y-Koordinaten des Punkts an, der den Ausgangspunkt des Bogens definiert (in logischen Einheiten). 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 die x- und y-Koordinaten des Punkts an, der den Endpunkt des Bogens definiert (in logischen Einheiten). 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 Bogen, der gezeichnet wird, indem die Funktion verwendet, ist ein Segment der Ellipse, die durch das angegebene umschließende Rechteck definiert ist.
Der tatsächliche Ausgangspunkt des Bogens ist der Punkt, an dem ein Strahl, der von der Mitte des umgebenden Rechtecks durch den angegebenen Ausgangspunkt gezeichnet wird, die Ellipse überlappt. Der tatsächliche Endpunkt des Bogens ist der Punkt, an dem ein Strahl, der von der Mitte des umgebenden Rechtecks durch den angegebenen Endpunkt gezeichnet wird, die Ellipse überlappt. Der Bogen wird in eine Richtung gegen den Uhrzeigersinn gezeichnet. Da ein Bogen keine geschlossenen Körper ist, wird er nicht ausgefüllt. müssen die Breite und Höhe des Rechtecks als 2 Einheiten und weniger als 32.767 Einheiten größer sein.
Beispiel
void CDCView::DrawArc(CDC* pDC)
{
// Fill the client area with a thin circle. The circle's
// interior is not filled. The circle's perimeter is
// blue from 6 o'clock to 3 o'clock and red from 3
// o'clock to 6 o'clock.
// Get the client area.
CRect rectClient;
GetClientRect(rectClient);
// Make a couple of pens.
CPen penBlue;
CPen penRed;
CPen* pOldPen;
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.
pOldPen = pDC->SelectObject(&penBlue);
pDC->Arc(rectClient,
CPoint(rectClient.right, rectClient.CenterPoint().y),
CPoint(rectClient.CenterPoint().x, rectClient.right));
// Draw from 6 o'clock to 3 o'clock, counterclockwise,
// in a red pen.
pDC->SelectObject(&penRed);
// Keep the same parameters, but reverse start
// and end points.
pDC->Arc(rectClient,
CPoint(rectClient.CenterPoint().x, rectClient.right),
CPoint(rectClient.right, rectClient.CenterPoint().y));
// Restore the previous pen.
pDC->SelectObject(pOldPen);
}
Anforderungen
Header: afxwin.h