#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
OnAutoItExitRegister('_OnExit') ; Удаляет RichEdit и GUI даже при завершении скрипта с ошибкой

$hGui = GUICreate("Поиск текста", 320, 300, -1, -1)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "Возвращает позицию найденного текста", 10, 10, 400, 220, _
		BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
$lblMsg = GUICtrlCreateLabel("Строка состояния", 10, 300-20, 300, 17)
$iButton = GUICtrlCreateButton('Найти текст', 220, 240, 80, 20)
$iInput = GUICtrlCreateInput('позИцию', 10, 240, 200, 20)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $iButton
			; Устанавливает текстовый курсор в начало, так как поиск от курсора
			_GUICtrlRichEdit_GotoCharPos($hRichEdit, 0)
			$sFindText = GUICtrlRead($iInput)
			; Поиск текста
			$iPos = _GUICtrlRichEdit_FindText($hRichEdit, $sFindText)
			If Not @error Then
				GUICtrlSetData($lblMsg, $iPos)
				; Выделяет найденный текст
				_GUICtrlRichEdit_SetSel($hRichEdit, $iPos, $iPos + StringLen($sFindText))
			EndIf
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Func _OnExit()
	; Для версий ниже 3.3.8.0 обязательно удаление RichEdit или GUI для освобождения ресурсов RichEdit
	_GUICtrlRichEdit_Destroy($hRichEdit)
	GUIDelete()
EndFunc