Functions > GUI > GUICtrlUpdate >


GUICtrlSetGraphic

Dessine des formes dans un contr�le graphique.

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

Param�tres

controlID L'ID du contr�le tel que retourn� par la fonction GUICtrlCreateGraphic().
type Type de trac� : point, ligne, B�zier, rectangle, ellipse, arc de cercle. (Voir Remarques)
par1...par6 Voir la Table des types graphiques ci-dessous.

Valeur de retour

Succ�s: Retourne 1.
�chec: Retourne 0.
-1 En cas de donn�es non valides

Remarques

La position du point (x, y) est relative aux coordonn�es GUICtrlCreateGraphic(). Il peut se trouver en dehors du contr�le graphique mais � l'int�rieur de la fen�tre GUI.

Table des types graphiques

Type Param�tres R�sultat
$GUI_GR_COLOR Color [, BkColor] D�finit la couleur des prochains dessins. Lorsque BkColor est �gale � $GUI_GR_NOBKCOLOR le dessin ne sera pas remplie. C'est la valeur par d�faut. Pour Color la couleur de ligne par d�faut est noir.
$GUI_GR_MOVE x,y D�place le curseur graphique � une position sans laisser de trace.
$GUI_GR_DOT x,y Trace un point (petit carr� autour du point), le prochain trac� d�marrera de cette position.
$GUI_GR_PIXEL x,y Dessine un pixel (petite croix), le prochain trac� d�marrera de cette position.
$GUI_GR_LINE x,y Trace une ligne de la position courante du curseur graphique � la position indiqu�e.
$GUI_GR_BEZIER x,y,x1,y1,x2,y2 Trace une courbe de B�zier avec 2 points de contr�le.
$GUI_GR_RECT x,y,w,h Trace un rectangle. Si w = h, ce sera un carr�.
$GUI_GR_ELLIPSE x,y,w,h Trace une ellipse. Si w = h, ce sera un cercle.
$GUI_GR_PIE x,y,r,sa,wa Trace un secteur angulaire: rayon=r startAngle=sa sweepangle=wa. Les angles sont en degr�s.
$GUI_GR_CLOSE   Pour fermer un trac� en cours, doit �tre ajout� � $GUI_GR_LINE ou $GUI_GR_BEZIER. Utilis� seul, il sera ignor�.
$GUI_GR_REFRESH   Pour forcer le rafraichissemenet apr�s une mise � jour dynamique de graphiques.
$GUI_GR_HINT   Pour afficher le point de contr�le et le point de terminaison d'une courbe de B�zier ou d'une ligne.
$GUI_GR_PENSIZE n D�finit la taille du crayon pour les prochains trac�s. Elle doit �tre d�finie avant $GUI_GR_COLOR pour �tre prise en compte.
$GUI_GR_NOBKCOLOR   C'est une couleur de fond factice pour forcer un trac� � se fermer sans se remplir. Seulement pour les trac�s de ligne.

En raison de contraintes de conception, les graphiques RECT, ELLIPSE et PIE sont dessin�s en premier. Par exemple, une ligne sera toujours dessin�e sur un RECT. Si l'ordre de dessin est important pour l'aspect du graphique, il est recommand� d'utiliser plusieurs contr�les graphiques au lieu d'utiliser un seul contr�le pour faire tout le dessin.

En relation

GUICtrlCreateGraphic

Exemple

#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>

Global Const $g_MAXGr = 6
Global $g_aidGraphics[$g_MAXGr + 1] ; 0 et les entr�es $g_MAXGr ne sont pas utilis�s pour permettre GUICtrlDelete
Global $g_idDel, $g_hChild

Example()

Func Example()
    Local $idMsg, $iInc, $i

    GUICreate("My Main", -1, -1, 100, 100)
    Local $idDel1 = GUICtrlCreateButton("ReCreate", 50, 200, 50)
    GUISetState(@SW_SHOW)
    CreateChild()

    $i = 1
    $iInc = 1
    ;$i = 5 ; d�commenter pour supprimer le d�marrage � partir du dernier contr�le graphique d�fini
    ;$iInc = -1

    Do
        $idMsg = GUIGetMsg()
        If $idMsg = $idDel1 Then $i = Create($iInc)

        If $idMsg = $g_idDel Then
            GUICtrlDelete($g_aidGraphics[$i])
            $i = $i + $iInc
            If $i < 0 Or $i > $g_MAXGr Then Exit
        EndIf
    Until $idMsg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

Func Create($iInc)
    GUIDelete($g_hChild)
    CreateChild()
    If $iInc = -1 Then Return 5
    Return 1
EndFunc   ;==>Create

Func CreateChild()
    $g_hChild = GUICreate("My Draw")
    $g_idDel = GUICtrlCreateButton("Delete", 50, 165, 50)

    $g_aidGraphics[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)

    $g_aidGraphics[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)

    $g_aidGraphics[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)

    $g_aidGraphics[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)

    $g_aidGraphics[5] = GUICtrlCreateGraphic(150, 10, 50, 50)
    GUICtrlSetBkColor(-1, 0xa0ffa0)
    GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 20, 20) ;le point de d�part
    ; il est pr�f�rable de tracer la ligne et apr�s le point
    ; pour �viter de basculer la couleur � chaque dessin
    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)

    $g_aidGraphics[6] = GUICtrlCreateGraphic(110, 260, 230, 130)
    GUICtrlSetColor(-1, 0) ; affiche une ligne de bordure noire
    GUICtrlSetBkColor(-1, 0xc0c0ff)
    GUICtrlSetGraphic(-1, $GUI_GR_HINT, 3) ; affiche les lignes du contr�le et les points d'extr�mit�

    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0, 0xff); remplir en bleu
    GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 120, 20) ; le point de d�part
    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) ;le point de d�part

    GUISetState(@SW_SHOW)
EndFunc   ;==>CreateChild