Функция _GUICtrlRichEdit_GetLineNumberFromCharPos

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


_GUICtrlRichEdit_GetLineNumberFromCharPos

Возвращает номер строки, на которой находится указанная между-символьная позиция

#include <GuiRichEdit.au3>
_GUICtrlRichEdit_GetLineNumberFromCharPos($hWnd, $iCharPos)

Параметры

$hWnd Дескриптор элемента
$iCharPos Между-символьная позиция

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

Успех:Возвращает номер строки (отсчёт от 1)
Ошибка:Возвращает 0 и устанавливает @error
@error:101 - $HWnd не является дескриптором
102 - $iCharPos не положительное число

Примечания

RichEdit не содержащий текста имеет одну строку.
Первая между-символьная позиция в элементе равна 0.

Отсчёт строк начинается с 1

Если число в $iCharPos является отрицательным или больше, чем количество символов в элементе, то возвращается количество строк в элементе

См. также

_GUICtrlRichEdit_GetSel, _GUICtrlRichEdit_GetTextInLine

См. также

Искать EM_EXLINEFROMCHAR в библиотеке MSDN

Пример

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

Global $lblMsg, $hRichEdit

Main()

Func Main()
    Local $hGui
    $hGui = GUICreate(StringTrimRight(@ScriptName, 4), 420, 350, -1, -1)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, 'Это тест.', 10, 10, 400, 220, _
            BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    $lblMsg = GUICtrlCreateLabel("", 10, 235, 300, 60)
    GUISetState()

    _GUICtrlRichEdit_AppendText($hRichEdit, @CR & "This is appended text")
    Report("Inter-character position 30 is on line " & _GUICtrlRichEdit_GetLineNUmberFromCharPos($hRichEdit, 30))

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                _GUICtrlRichEdit_Destroy($hRichEdit)
                GUIDelete()
                Exit
        EndSwitch
    WEnd
EndFunc   ;==>Main

Func Report($sMsg)
    GUICtrlSetData($lblMsg, $sMsg)
EndFunc   ;==>Report