Функция GUICtrlCreateGraphic

         Описание функции


GUICtrlCreateGraphic

Создаёт Graphic (векторная графика) в GUI.

GUICtrlCreateGraphic ( left, top [, width [, height [, style = -1 ]]] )

Параметры

left Координата левого края. Если -1 - тогда координата в соответствии с GUICoordMode.
top Координата верхнего края. Если -1 - тогда координата в соответствии с GUICoordMode.
width [необязательный] Ширина элемента (по умолчанию предыдущее значение).
height [необязательный] Высота элемента (по умолчанию предыдущее значение).
style [необязательный] Стиль элемента. Смотрите Стили элементов GUI в приложении.

-1 - по умолчанию : $SS_NOTIFY.

Возвращаемое значение

Успех:Возвращает идентификатор (controlID) нового элемента.
Ошибка:Возвращает 0.

Примечания

Чтобы рисовать фигуры в элементе смотрите GUICtrlSetGraphic.

Цвет границ и фона могут быть установлены с помощью GUICtrlSetBkColor и GUICtrlSetColor.

Элемент Graphic можно кликнуть, при условии неперекрывания другими элементами. Если перекрытия необходимо, то отключите неиспользуемые с помощью : GUICtrlSetState(-1,$GUI_DISABLE).

Этот элемент не может измениться в размерах из-за относительной адресации создания, но перемещается в соответствии с функцией GUICtrlSetResizing().

См. также

GUICtrlSetGraphic, GUICtrlSetBkColor, GUICtrlSetColor, GUICtrlDelete, GUICoordMode (Опция), GUICtrlSetStyle, GUICtrlSetResizing, GUIGetMsg

Пример

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

Global $MAXGr = 6, $del
Global $a[$MAXGr + 1] ; Данные в индексах массива 0 и $MAXGr не используются в функции GUICtrlDelete

Example()

Func Example()
    Local $msg, $inc, $i

    CreateChild()

    $i = 1
    $inc = 1
    Do
        $msg = GUIGetMsg()

        If $msg = $del Then
            GUICtrlDelete($a[$i])
            $i = $i + $inc
            If $i < 0 Or $i > $MAXGr Then Exit
        EndIf
        If $msg > 0 Then MsgBox(4096, "Нажат", $msg & @LF & $a[5], 2)
    Until $msg = $GUI_EVENT_CLOSE
EndFunc

Func CreateChild()
    GUICreate("Нарисованные объекты")
    $del = GUICtrlCreateButton("Удалить", 140, 320, 70)

    $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, 50, 100, 100) ; сегменты
    GUICtrlSetStyle(-1, $SS_NOTIFY)
    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, 150, 100, 100, 0) ; квадрат
    GUICtrlSetBkColor(-1, 0xf08080)
    GUICtrlSetColor(-1, 0xff)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff00)
    GUICtrlSetGraphic(-1, $GUI_GR_RECT, 50, 50, 80, 80)

    $a[4] = GUICtrlCreateGraphic(20, 200, 80, 80) ; линия создающая многогранник
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, 0xffffff)
    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, 0) ; линия и точки (график)
    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, 40, 40)

    GUISetState()
EndFunc