# Function Reference

GUICtrlSetGraphic

Modifies the data for a control.

GUICtrlSetGraphic ( controlID, type [, par1 [, ... par6]] )

Parameters

controlID | The control identifier (controlID) as returned by a GUICtrlCreateGraphic function. ype type of drawing : dot, line, bezier, rect, ellipse, pie.
par1...par6 | See the Graphic Type table below.

Return Value

Success: | Returns 1.
Failure: | Returns 0.
| Returns -1 in case of invalid data

Remarks

The point position (x,y) is relative to the GUICtrlCreateGraphic coordinates. It can be outside the graphic control but inside of the GUI window.
Graphic Type table

Type | Parameters | result
$GUI_GR_COLOR | Color [,BkColor] | Define the color of the next drawings. When BkColor is equal to $GUI_GR_NOCOLOR the drawing will not be filled. It is the default. For Color the default line color is black.
$GUI_GR_MOVE | x,y | Move the current position without drawing.
$GUI_GR_DOT | x,y | Draw a point(smallest square around the point), the next drawing will start from previous position.
$GUI_GR_PIXEL | x,y | Draw a pixel, the next drawing will start from previous position.
$GUI_GR_LINE | x,y | Draw a line.
$GUI_GR_BEZIER | x,y,x1,y1,x2,y2 | Draw a bezier curve with 2 control points.
$GUI_GR_RECT | x,y,w,h | Draw a rectangle. If w=h it will be a square.
$GUI_GR_ELLIPSE | x,y,w,h | Draw an ellipse. If w=h it will be a circle.
$GUI_GR_PIE | x,y,r,sa,wa | Draw a pie radius=r startangle=sa sweepangle=wa. Angles are in degrees.
$GUI_GR_CLOSE |  | to close the current drawing. It has to be added to $GUI_GR_LINE or $GUI_GR_BEZIER to close current drawing. Use alone will be ignored.
$GUI_GR_REFRESH |  | to force refresh after dynamic update of graphics.
$GUI_GR_HINT |  | to display control point and end point of bezier/line curve.
$GUI_GR_PENSIZE | n | set pensize for the next drawings. It has to be defined before $GUI_GR_COLOR to be taken in account.
$GUI_GR_NOBKCOLOR |  | is a dummy BkColor to force closed drawing not to be filled. Just line drawings.

Related

GUICtrlCreateGraphic

Example

#include <GUIConstants.au3>
$MAXGr=7
Global $a[$MAXGr+1] ; 0 and $MAXGr entries not used to allow GUICtrlDelete result
Global $child, $del
GUICreate("My Main", -1,-1,100,100)
$del1=GuiCtrlCreateButton("Delete", 50,200, 50)
GUISetState()
CreateChild()
$i=1
$inc=1
;$i=5 ; uncomment to delete starting from last define Graphic control
;$inc=-1
Do
$msg = GUIGetMsg()
if $msg= $del1 then Del()
if $msg= $del then
GuiCtrlDelete($a[$i])
$i = $i+$inc
if $i <0 OR $i>$MAXGr then exit
EndIf
Until $msg=$GUI_EVENT_CLOSE
Func Del()
GuiDelete($child)
CreateChild()
EndFunc
Func CreateChild()
$child=GUICreate("My Draw")
$del=GuiCtrlCreateButton("Delete", 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) ; start point
; it is better to draw line and after point
; to avoid to switch color at each drawing
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) ; to display a balck border line
GUICtrlSetBkColor(-1,0xc0c0ff)
GUICtrlSetGraphic(-1,$GUI_GR_HINT, 3) ; to display control lines and end points
GUICtrlSetGraphic(-1,$GUI_GR_COLOR, 0, 0xff); fill in blue
GUICtrlSetGraphic(-1,$GUI_GR_MOVE, 120,20) ; start point
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) ; start point
GuiSetState()
EndFunc