Ändert die Daten für ein Steuerungsitem.
GUICtrlSetGraphic ( controlID, type [, par1 [, ... par6]] )
Parameter
| ControlID | Der Control-Identifizierer (Control-ID), wie von GUICtrlCreateGraphic zurückgegeben. |
| type | Art des Zeichens : Punkt, Linie, Bezierkurve, Rechteck, Ellipse, Tortenstück. |
| par1...par6 | Siehe die Grafiktyp Tabelle weiter unten. |
Rückgabewert
| Erfolg: | Gibt 1 zurück. |
| Fehler: | Gibt 0 zurück. |
| Gibt im Falle ungültiger Daten -1 zurück |
Bemerkungen
Die Position des Punktes (x,y) ist relativ zu den GUICtrlCreateGraphic Koordinaten. Er kann außerhalb des Graphic-Controls aber innerhalb des GUI-Fensters liegen.| Typ | Parameter | Ergebnis |
| $GUI_GR_COLOR | Color [,BkColor] | Legt die Farbe für den nächsten Zeichenvorgang fest. Wenn BkColor gleich $GUI_GR_NOBKCOLOR ist, wird der Zeichenvorgang nicht farblich gefüllt. Das ist die Standardeinstellung. Für Color ist die Standard-Linienfarbe schwarz. |
| $GUI_GR_MOVE | x,y | Ändert die derzeitige Position ohne Zeichenvorgang. |
| $GUI_GR_DOT | x,y | Zeichnet einen Punkt(kleinstes Quadrat um den Punkt), der nächste Zeichenvorgang startet von der vorigen Position. |
| $GUI_GR_PIXEL | x,y | Zeichnet einen Pixel, der nächste Zeichenvorgang startet von der vorigen Position. |
| $GUI_GR_LINE | x,y | Zeichnet eine Linie. |
| $GUI_GR_BEZIER | x,y,x1,y1,x2,y2 | Zeichnet eine Bezierkurve mit 2 Kontrollpunkten. |
| $GUI_GR_RECT | x,y,w,h | Zeichnet ein Rechteck. Falls w=h wird es ein Quadrat. |
| $GUI_GR_ELLIPSE | x,y,w,h | Zeichnet eine Ellipse. Falls w=h wird es ein Kreis. |
| $GUI_GR_PIE | x,y,r,sa,wa | Zeichnet ein Tortenstück. Radius=r Startwinkel=sa Breite des Stücks in Grad=wa. Winkelangaben in Grad. |
| $GUI_GR_CLOSE | Beendet den derzeitigen Zeichenvorgang. Um den laufenden Zeichenvorgang zu beenden, muss es $GUI_GR_LINE oder $GUI_GR_BEZIER hinzugefügt werden. Alleinige Benutzung wird ignoriert. | |
| $GUI_GR_REFRESH | Erzwingt die Aktualisierung der Grafik nach einer Änderung. | |
| $GUI_GR_HINT | Zeigt den Kontroll- und den Endpunkt von Bezierkurven. | |
| $GUI_GR_PENSIZE | n | Setzt die Größe des Zeichenstifts für den nächsten Zeichenvorgang. Um zum Tragen zu kommen, muss sie vor $GUI_GR_COLOR definiert werden. |
| $GUI_GR_NOBKCOLOR | ist ein Dummywert für BkColor, um das Ausfüllen geschlossener ZeichnungsItems zu verhindern (nur Umrandungslinien). |
Verwandte Funktionen
GUICtrlCreateGraphic
Beispiel
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
Opt('MustDeclareVars', 1)
Global $MAXGr = 6, $del, $child
Global $a[$MAXGr + 1] ; 0 und $MAXGr-Einträge werden nicht für GUICtrlDelete benutzt
Example()
Func Example()
Local $msg, $inc, $i, $del1
GUICreate("Mein Hauptfenster", -1, -1, 100, 100)
$del1 = GUICtrlCreateButton("Löschen", 50, 200, 50)
GUISetState()
CreateChild()
$i = 1
$inc = 1
;$i=5 ; Auskommentieren um den Löschvorgang bei dem zuletzt definierten Grafik-Control zu beginnen
;$inc=-1
Do
$msg = GUIGetMsg()
If $msg = $del1 Then $i = Del($inc)
If $msg = $del Then
GUICtrlDelete($a[$i])
$i = $i + $inc
If $i < 0 Or $i > $MAXGr Then Exit
EndIf
Until $msg = $GUI_EVENT_CLOSE
EndFunc ;==>Example
Func Del($iInc)
GUIDelete($child)
CreateChild()
If $iInc = -1 Then Return 5
Return 1
EndFunc ;==>Del
Func CreateChild()
$child = GUICreate("Meine Zeichnung")
$del = GUICtrlCreateButton("Löschen", 50, 165, 50)
$a[1] = GUICtrlCreateGraphic(20, 50, 100, 100)
GUICtrlSetBkColor(-1, 0xffffff)
GUICtrlSetColor(-1, 0)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff0000, 0xff0000)
GUICtrlSetGraphic(-1, $GUI_GR_PIE, 50, 50, 40, 30, 270)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x00ff00, 0xffffff)
GUICtrlSetGraphic(-1, $GUI_GR_PIE, 58, 50, 40, -60, 90)
GUICtrlSetGraphic(-1, $GUI_GR_ELLIPSE, 100, 100, 50, 80)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x00ff00, 0xc0c0ff)
GUICtrlSetGraphic(-1, $GUI_GR_RECT, 350, 200, 50, 80)
GUICtrlCreateLabel("Label", 65, 100, 30)
GUICtrlSetColor(-1, 0xff)
$a[2] = GUICtrlCreateGraphic(220, 10, 100, 100)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0, 0xff)
GUICtrlSetGraphic(-1, $GUI_GR_PIE, 50, 50, 40, 30, 270)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x00ff00, 0xffffff)
GUICtrlSetGraphic(-1, $GUI_GR_PIE, 58, 50, 40, -60, 90)
$a[3] = GUICtrlCreateGraphic(220, 110, 100, 100)
GUICtrlSetBkColor(-1, 0xf08080)
GUICtrlSetColor(-1, 0xff)
GUICtrlSetGraphic(-1, $GUI_GR_HINT, 1)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff00)
GUICtrlSetGraphic(-1, $GUI_GR_RECT, 50, 50, 80, 80)
$a[4] = GUICtrlCreateGraphic(20, 200, 80, 80)
GUICtrlSetBkColor(-1, 0xffffff)
GUICtrlSetGraphic(-1, $GUI_GR_HINT, 1)
GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 10, 10)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 30, 40)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff00)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 70, 70)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff0000)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 10, 50)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xffff00)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 10, 10)
$a[5] = GUICtrlCreateGraphic(150, 10, 50, 50)
GUICtrlSetBkColor(-1, 0xa0ffa0)
GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 20, 20) ; Startpunkt
; Es ist besser eine Linie bis zum Endpunkt zu zeichnen,
; Um das ständige wechseln der Farbe zu umgehen
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x0000ff)
GUICtrlSetGraphic(-1, $GUI_GR_DOT, 30, 30)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 20, 40)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff0000)
GUICtrlSetGraphic(-1, $GUI_GR_DOT, 25, 25)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 40, 40)
GUICtrlSetGraphic(-1, $GUI_GR_DOT, 30, 40)
$a[6] = GUICtrlCreateGraphic(110, 260, 230, 130)
GUICtrlSetColor(-1, 0) ; Um eine schwarze Umrandungarnd anzuzeigen
GUICtrlSetBkColor(-1, 0xc0c0ff)
GUICtrlSetGraphic(-1, $GUI_GR_HINT, 3) ; Um Punkte am Control und Endpunkte der Linien/Bezierkurven anzuzeigen
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0, 0xff); Mit Blau füllen
GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 120, 20) ; Startpunkt
GUICtrlSetGraphic(-1, $GUI_GR_BEZIER, 120, 100, 200, 20, 200, 100)
GUICtrlSetGraphic(-1, $GUI_GR_BEZIER + $GUI_GR_CLOSE, 100, 40, 40, 100, 40, 20)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 60, 30) ; Startpunkt
GUISetState()
EndFunc ;==>CreateChild