GUICtrlSetGraphic
Изменяет данные для элемента Graphic.
GUICtrlSetGraphic ( controlID, type [, par1 [, ... par6 ]] )
Параметры
controlID | Идентификатор элемента возвращаемый функцией GUICtrlCreateGraphic. |
type |
Тип фигуры : точка, линия, кривая Безье, прямоугольник, эллипс, сегмент. |
par1...par6 |
Смотрите ниже Таблицу фигур Graphic. |
Возвращаемое значение
Успех: | Возвращает 1. |
Ошибка: | Возвращает 0. |
Возвращает -1, в случае неверных данных |
Примечания
Координаты фигуры (x,y) устанавливаются относительно координат элемента GUICtrlCreateGraphic. Это может быть вне элемента Graphic, но внутри GUI-окна.Фигура | Параметры | Результат |
---|---|---|
$GUI_GR_COLOR | Color [,BkColor] | Цвет для последующих фигур. Когда BkColor равен $GUI_GR_NOBKCOLOR фигура не будет заполнена фоном. Это по умолчанию. По умолчанию линия границ черного цвета. |
$GUI_GR_MOVE | x,y | Переместить текущую позицию без рисования (начало для фигуры Линия). |
$GUI_GR_DOT | x,y | Точка в пиксель, обведённая границами, следующее рисование начинается с предыдущей позиции. |
$GUI_GR_PIXEL | x,y | Точка в пиксель, без обводящих границ, следующее рисование начинается с предыдущей позиции. |
$GUI_GR_LINE | x,y | Линия, использует предыдущие координаты для начала (первое начало из левого верхнего угла или установкой $GUI_GR_MOVE). Позволяет создать многогранник. |
$GUI_GR_BEZIER | x,y,x1,y1,x2,y2 | Кривая Безье с 2-мя управляющими точками, использует предыдущие координаты для начала (первое начало из левого верхнего угла или установкой $GUI_GR_MOVE). Позволяет создать фигуру из кривых. |
$GUI_GR_RECT | x,y,w,h | Прямоугольник. Если ширина равна высоте (w=h), то получится квадрат. |
$GUI_GR_ELLIPSE | x,y,w,h | Эллипс (x,y - координаты центра). Если w=h, то получится круг. |
$GUI_GR_PIE | x,y,r,sa,wa | Сегмент (x,y - координаты центра) r - радиус sa - стартовый угол (отсчёт против часовой стрелки от горизонтального вектора указывающего вправо), wa - угол сегмента. Углы в градусах. |
$GUI_GR_CLOSE | Окончить текущее рисование. Это необходимо добавить к $GUI_GR_LINE или $GUI_GR_BEZIER, чтобы окончить рисование. Индивидуальное использование игнорируется. | |
$GUI_GR_REFRESH | Обновить элемент Graphic. | |
$GUI_GR_HINT | Отображение управляющих и конечной точек для последующих фигур - Линии и Кривой Безье. | |
$GUI_GR_PENSIZE | n | Установить толщину линии для последующих рисований. Это должно быть установлено до $GUI_GR_COLOR, которые должны учитываться. |
$GUI_GR_NOBKCOLOR | фиктивно BkColor закрывает рисование отсутствием фона. Только отрисовка линии. |
См. также
GUICtrlCreateGraphicПример
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
Global $MAXGr = 6, $del, $child
Global $a[$MAXGr + 1] ; Данные в индексах массива 0 и $MAXGr не используются в функции GUICtrlDelete
Example()
Func Example()
Local $msg, $inc, $i, $del1
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 $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
Func Del($iInc)
GUIDelete($child)
CreateChild()
If $iInc = -1 Then Return 5
Return 1
EndFunc
Func CreateChild()
$child = GUICreate("Мои нарисованные объекты")
$del = GUICtrlCreateButton("Удалить", 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("текст", 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) ; начало отсчёта
; Лучше нарисовать линии, а потом точки, чтобы не переключать цвет после каждой фигуры
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 black 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