Функция GUICtrlCreateEdit

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


GUICtrlCreateEdit

Создаёт Edit в GUI.

GUICtrlCreateEdit ( "text", left, top [, width [, height [, style = -1 [, exStyle = -1 ]]]] )

Параметры

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

-1 - по умолчанию : $ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL
принудительный стиль : $ES_MULTILINE, $WS_TABSTOP только, если не используется $ES_READONLY
exStyle [необязательный] Расширенный стиль элемента. Смотрите таблицу расширенных стилей.
-1 - по умолчанию : $WS_EX_CLIENTEDGE

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

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

Примечания

Для получения параметров элемента смотрите GUICtrlRead.
Чтобы установить или изменить параметры элемента смотрите GUICtrlUpdate....

Чтобы объединить стили со стилем по умолчанию используйте BitOR($GUI_SS_DEFAULT_EDIT, новый стиль,...).

Если вы хотите перетаскивать файлы на этот элемент просто добавьте $WS_EX_ACCEPTFILES расширенный стиль в функции GUICreate() и установите элементу состояние $GUI_DROPACCEPTED.
При одновременном перетаскивании нескольких файлов на элемент Edit они будут получены как отдельные строки (каждый путь с новой строки).

Чтобы использовать параметры, указанные выше, вы должны включить в ваш скрипт #include <EditConstants.au3>.

По умолчанию стиль изменения размеров $GUI_DOCKAUTO (размер и позиция изменяются пропорционально).

Создание элемента RichEdit слишком сложны, поэтому он не будет включен в качестве базового элемента управления.
Вы должны использовать GUICtrlCreateObj. Смотрите второй пример, если вам нужен элемент RichEdit.

См. также

GUICoordMode (Опция), GUICtrlSetData, GUICtrlSetState, GUICtrlSetLimit, GUIGetMsg, GUICtrlRead

Пример

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

Local $iEdit, $msg, $SelectAll, $Select, $replace, $read_only, $read_write, $undo, $empty_undo, $read, $set, $tmp

GUICreate("Окно редактирования в GUI") ; Создаёт окно в центре экрана

$iEdit = GUICtrlCreateEdit("Первая строка" & @CRLF, 10, 10, 240, 350, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_NOHIDESEL + $ES_WANTRETURN)
GUICtrlSendMsg(-1, $EM_LIMITTEXT, -1, 0) ; снимает ограничение на количество символов 30 000

$SelectAll = GUICtrlCreateButton("Выделить всё", 260, 10, 130, 25)
$Select = GUICtrlCreateButton("Выделить с 3 по 9", 260, 40, 130, 25)
$replace = GUICtrlCreateButton("Вставить в позицию", 260, 70, 130, 25)
$undo = GUICtrlCreateButton("Отменить действие", 260, 100, 130, 25)
$empty_undo = GUICtrlCreateButton("Очистить отмены", 260, 130, 130, 25)
$set = GUICtrlCreateButton("Вставить с заменой", 260, 160, 130, 25)
$read = GUICtrlCreateButton("Прочитать Edit", 260, 190, 130, 25)
$read_only = GUICtrlCreateButton("Только чтение", 260, 220, 130, 25)
$read_write = GUICtrlCreateButton("Чтение и запись", 260, 250, 130, 25)

GUISetState()

Send("{END}")

; для добавления текста не забывайте про третий параметр - 1
GUICtrlSetData($iEdit, "Вторая строка", 1)

; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
Do
    $msg = GUIGetMsg()

    Switch $msg
        Case $SelectAll
            GUICtrlSendMsg($iEdit, $EM_SETSEL, 0, -1)
        Case $Select
            GUICtrlSendMsg($iEdit, $EM_SETSEL, 3, 9)
        Case $replace
            GUICtrlSetData($iEdit, "-вставка-", 1)
            ; GUICtrlSendMsg($iEdit, $EM_REPLACESEL, True, '-вставка-') ; или так
        Case $set
            GUICtrlSetData($iEdit, 'Вставка текста' & @CRLF & 'с заменой предыдущего')
        Case $read
            MsgBox(4096, 'Сообщение', GUICtrlRead($iEdit))
        Case $read_only
            GUICtrlSendMsg($iEdit, $EM_SETREADONLY, True, 0)
        Case $read_write
            GUICtrlSendMsg($iEdit, $EM_SETREADONLY, False, 0)
        Case $undo
            GUICtrlSendMsg($iEdit, $EM_UNDO, 0, 0)
        Case $empty_undo
            GUICtrlSendMsg($iEdit, $EM_EMPTYUNDOBUFFER, 0, 0)
    EndSwitch
Until $msg = $GUI_EVENT_CLOSE
GUIDelete()