Функция _GUICtrlEdit_PosFromChar

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


_GUICtrlEdit_PosFromChar

Возвращает координаты символа относительно клиентской области элемента Edit

#include <GuiEdit.au3>
_GUICtrlEdit_PosFromChar($hWnd, $iIndex)

Параметры

$hWnd Дескриптор или идентификатор элемента
$iIndex Индекс символа, отсчёт от 0

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

Успех: Возвращает массив следующего формата:

    [0] - X-координата
    [1] - Y-координата

Примечания

Возвращает левый нижний угол символа

Пример

#include <GuiEdit.au3>
#include <GuiStatusBar.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Debug_Ed = False ; Проверяет ClassName передаваемый в Edit функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

_Main()

Func _Main()
    Local $hStatusBar, $hEdit, $hGUI, $iIndex
    Local $sWow64 = ""
    If @AutoItX64 Then $sWow64 = "\Wow6432Node"
    Local $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE" & $sWow64 & "\AutoIt v3\AutoIt", "InstallDir") & "\include\_ReadMe_.txt"
    Local $aPartRightSide[2] = [80, -1], $aPos

    ; Создаёт GUI
    $hGUI = GUICreate("Координаты символа", 400, 300)
    $hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268, BitOR($ES_WANTRETURN, $WS_VSCROLL, $ES_NOHIDESEL))
    $hStatusBar = _GUICtrlStatusBar_Create($hGUI, $aPartRightSide)
    GUISetState()

    ; Устанавливает отступ, который также влияет на координаты символа
    _GUICtrlEdit_SetMargins($hEdit, BitOR($EC_LEFTMARGIN, $EC_RIGHTMARGIN), 10, 10)

    ; Устанавливает текст
    _GUICtrlEdit_SetText($hEdit, FileRead($sFile))

    ; Координаты символа
    $iIndex = 100
    $aPos = _GUICtrlEdit_PosFromChar($hEdit, $iIndex)
    _GUICtrlEdit_SetSel($hEdit, $iIndex, $iIndex+1)
    _GUICtrlStatusBar_SetText($hStatusBar, "X = " & $aPos[0])
    _GUICtrlStatusBar_SetText($hStatusBar, "Y = " & $aPos[1], 1)

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main