Functions > GUI > GUICtrlUpdate >


GUICtrlSetGraphic

Modifie les données d'un contrôle.

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

Paramètres

controlID L'identifiant du contrôle tel que retourné par la fonction GUICtrlCreateGraphic().
type Type de dessin : 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 être en dehors du contrôle graphique mais à l'intérieur de la fenêtre GUI.

Graphic Type table

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 la position courante sans dessiner.
$GUI_GR_DOT x,y Dessine un point (petit carré autour du point), le prochain dessin démarrera de la position précédente.
$GUI_GR_PIXEL x,y Dessine un pixel, le prochain dessin démarrera de la position précédente.
$GUI_GR_LINE x,y Trace une ligne.
$GUI_GR_BEZIER x,y,x1,y1,x2,y2 Dessine 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 Dessine une ellipse. Si w = h, ce sera un cercle.
$GUI_GR_PIE x,y,r,sa,wa Dessine un arc de cercle: rayon=r startAngle=sa sweepangle=wa. Les angles sont en degrés.
$GUI_GR_CLOSE   Pour fermer le dessin courant. Il doit être ajouté à $GUI_GR_LINE ou $GUI_GR_BEZIER pour fermer le dessin courant. 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 fin d'une courbe de Bézier ou de ligne.
$GUI_GR_PENSIZE n Définit la taille du crayon pour les prochains dessins. 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 le dessin à se fermer sans se colorer. Seulement les dessins des lignes.

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