Rubrik: Grafik & Zeichnen | 22.03.05 |
PolyPolyline-Funktion Diese Funktion zeichnet mehrere Figuren die wiederum aus mehreren Linien bestehen können auf ein angegebenes Device. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 7.060 |
Deklaration:
Declare Function PolyPolyline Lib "gdi32.dll" ( _ ByVal hdc As Long, _ lppt As POINTAPI, _ lpdwPolyPoints As Long, _ ByVal cCount As Long) As Long
Beschreibung:
Diese Funktion zeichnet mehrere Figuren die wiederum aus mehreren Linien bestehen können auf ein angegebenes Device.
Parameter:
hdc | Erwartet das Handle des Gerätes, auf dem die Linien gezeichnet werden sollen. |
lppt | Erwartet ein Array von POINTAPI-Strukturen, das alle Linien aller Figuren enthalten muss. Jede Figur beginnt mit einem Startpunkt, geht eventuell über mehrereZwischenpunkte und endet schließlich an dem Endpunkt. |
lpdwPolyPoints | Erwartet ein Long-Array, wobei jedes Feld mit der Anzahl der Punkte einer Figur gefüllt ist. Enthält "lppt" zwei, jeweils aus 4 Punkten bestehende Figuren so wir hierz.B. ein zwei Felder großes Array erwartet, wobei jedes Feld mit dem Wert 4 gefüllt sein muss. |
cCount | Erwartet die Anzahl der Arrayfelder in "lpdwPolyPoints". |
Rückgabewert:
Ist die Funktion erfolgreich, so wird der Wert "1" zurückgegeben, andernfalls derWert "0".
Beispiel:
Private Declare Function PolyPolyline Lib "gdi32.dll" ( _ ByVal hdc As Long, _ lppt As POINTAPI, _ lpdwPolyPoints As Long, _ ByVal cCount As Long) As Long Private Type POINTAPI x As Long y As Long End Type
' Zeichnen zweier umgedrehter Dreiecke auf der gesamten Form Private Sub Form_Paint() Dim Retval As Long, Points(7) As POINTAPI, Figures(1) As Long Me.ScaleMode = vbPixels ' erstes Dreieck festlegen With Points(0) .x = 10 .y = 10 End With With Points(1) .x = (Me.ScaleWidth - 20) / 2 .y = (Me.ScaleHeight - 20) / 2 End With With Points(2) .x = Me.ScaleWidth - 10 .y = 10 End With With Points(3) .x = 10 .y = 10 End With Figures(0) = 4 ' zweites Dreieck festlegen With Points(4) .x = 10 .y = (Me.ScaleHeight - 20) / 2 End With With Points(5) .x = (Me.ScaleWidth - 20) / 2 .y = Me.ScaleHeight - 10 End With With Points(6) .x = Me.ScaleWidth - 10 .y = (Me.ScaleHeight - 20) / 2 End With With Points(7) .x = 10 .y = (Me.ScaleHeight - 20) / 2 End With Figures(1) = 4 ' Dreieck zeichnen Me.Cls Retval = PolyPolyline(Me.hdc, Points(0), Figures(0), UBound(Figures) + 1) End Sub
' Beim Ändern der Fenstergröße auch zeichnen Private Sub Form_Resize() Call Form_Paint End Sub