Rubrik: Grafik & Zeichnen | 09.05.01 |
Arc-Funktion Die Funktion Arc zeichnet eine Ellipse, oder nur einen Teil einer Ellipse. | ||
Betriebssystem: Win95, Win98, WinNT, Win2000, WinME | Views: 16.107 |
Beschreibung:
Die Funktion Arc zeichnet eine Ellipse, oder nur einen Teil einer Ellipse. Die Ellipse wird in ein Rechteck (Rect) gezeichnet, welches mit der Funktion definiert wird. Die Ellipse wird vom Endpunkt gegen den Uhrzeigersinn hin zum Startpunkt gezeichnet. Sind die Koordinaten von Start- und Endpunkt identisch, so ist die Ellipse geschlossen, andernfalls wird nur ein Teil der Ellipse gezeichnet.
Deklaration:
Declare Function Arc Lib "gdi32.dll" ( _ ByVal hdc As Long, _ ByVal nLeftRect As Long, _ ByVal nTopRect As Long, _ ByVal nRightRect As Long, _ ByVal nBottomRect As Long, _ ByVal nXStartArc As Long, _ ByVal nYStartArc As Long, _ ByVal nXEndArc As Long, _ ByVal nYEndArc As Long) As Long
Parameter:
hdc | "Device Kontext" eines Objektes, wie z.B. eine Form oder ein Bildfeld |
nLeftRect | linke Position des Rect's, in dem die Ellipse angezeigt werden soll |
nTopRect | obere Position des Rect's, in dem die Ellipse angezeigt werden soll |
nRightRect | rechte Position des Rect's, in dem die Ellipse angezeigt werden soll |
nBottomRect | untere Position des Rect's, in dem die Ellipse angezeigt werden soll |
nXStartArc | horizontale Startposition der Ellipse |
nYStartArc | bertikale Startposition der Ellipse |
nXEndArc | horizontale Endposition der Ellipse |
nYEndArc | vertikale Endposition der Ellipse |
Rückgabewert:
War der Funktionsaufruf erfolgreich, so wird ein Wert ungleich "0" zurückgegeben. Tritt ein Fehler auf (z.B., wenn die Koordinaten fehlerhaft sind), so wird "0" zurückgegeben.
Beispiel:
Private Declare Function Arc Lib "gdi32.dll" ( _ ByVal hdc As Long, _ ByVal nLeftRect As Long, _ ByVal nTopRect As Long, _ ByVal nRightRect As Long, _ ByVal nBottomRect As Long, _ ByVal nXStartArc As Long, _ ByVal nYStartArc As Long, _ ByVal nXEndArc As Long, _ ByVal nYEndArc As Long) As Long
Private Sub Command1_Click() Dim Retval As Long, HalfWidth As Long, HalfHeight As Long Dim XStart As Long, YStart As Long Dim XEnd As Long, YEnd As Long With Form1 .ScaleMode = vbPixels ' Zeichnet eine komplette Ellipse auf der gesamten Form Retval = Arc(.hdc, 0&, 0&, .ScaleWidth, .ScaleHeight, .ScaleWidth, _ .ScaleHeight, .ScaleWidth, .ScaleHeight) If Retval = 0 Then _ MsgBox "Ein Fehler ist aufgetreten", vbCritical, "Fehler" ' Zeichnet eine halbe Ellipse auf der halben Form HalfWidth = .ScaleWidth / 2 HalfHeight = .ScaleHeight / 2 XStart = (.ScaleWidth - HalfWidth) / 2 YStart = (.ScaleHeight - HalfHeight) / 2 XEnd = HalfWidth + XStart YEnd = HalfHeight + YStart Retval = Arc(.hdc, XStart, YStart, XEnd, YEnd, XEnd, HalfHeight, XStart, HalfHeight) If Retval = 0 Then _ MsgBox "Ein Fehler ist aufgetreten", vbCritical, "Fehler" .Refresh End With End Sub