函数参考


_GUICtrlEdit_LineFromChar

获取包含指定字符索引的行的索引

#include <GuiEdit.au3>
_GUICtrlEdit_LineFromChar($hWnd [, $iIndex = -1])

参数

$hWnd 控件的控件ID/句柄
$iIndex [可选参数] 指定含有字符的行号(译注:不定准确,请参考原文)

返回值

成功: 包含由$iIndex指定的字符的索引的行的从 0 开始的数字

注意/说明

如果 $iIndex 为 -1,本函数将检索当前插入符号所在行.
如果有选择,检索将从选择行开始.

相关

示例/演示


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

$Debug_Ed = False ; 检查传递给 Edit 函数的类名, 设置为真并使用另一控件的句柄可以看出它是否有效

_Main()

Func _Main()
    Local $hStatusBar, $hEdit, $hGUI
    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] = [378, -1], $iRandom

    ; 创建 GUI
    $hGUI = GUICreate("Edit Line From Char", 400, 300)
    $hEdit = GUICtrlCreateEdit("", 2, 2, 394, 268, BitOR($ES_WANTRETURN, $WS_VSCROLL))
    $hStatusBar = _GUICtrlStatusBar_Create($hGUI, $aPartRightSide)
    _GUICtrlStatusBar_SetIcon($hStatusBar, 1, 97, "shell32.dll")
    GUISetState()

    ; 设置边距
    _GUICtrlEdit_SetMargins($hEdit, BitOR($EC_LEFTMARGIN, $EC_RIGHTMARGIN), 10, 10)

    ; 设置文本
    _GUICtrlEdit_SetText($hEdit, FileRead($sFile))

    ; 包含字符的行
    $iRandom = Random(0, _GUICtrlEdit_GetTextLen($hEdit) - 1, 1)
    _GUICtrlStatusBar_SetText($hStatusBar, "Line: " & _GUICtrlEdit_LineFromChar($hEdit, $iRandom) & " from char: " & $iRandom)

    ; 循环直到用户退出
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main