Dessine des formes dans un contrôle graphique.
GUICtrlSetGraphic ( controlID, type [, par1 [, ... par6]] )
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. |
Succès: | Retourne 1. |
Échec: | Retourne 0. -1 En cas de données non valides |
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. |
#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