函数参考


_GUICtrlEdit_SetSel

选择字符中的一个范围(选择一段字符串)

#include <GuiEdit.au3>
_GUICtrlEdit_SetSel($hWnd, $iStart, $iEnd)

参数

$hWnd 控件的控件ID/句柄
$iStart 指定选择字符的起始位置.
$iEnd 指定选择字符的结束位置.

返回值

None.

注意/说明

起始值可能大于结束值.
两个值中较小值指定选择字符的第一位置.
较高值指定选择字符在第一位置后的其他位置.

起始值是选择的定位点,结束值是当前最终点.
如果用户使用 Shift 键来调整选区的大小,则当前结束点可以移动,但定位点仍然是相同的.

如果 $iStart 为 0,$iEnd 为 -1,编辑控件中所有文本被选中.
如果 $iStart 为 -1,则取消现有任何选择.

无论相对值是 $iStart,还是 $iEnd,控件都将在 $iEnd 定位点显示一个闪烁的插入符号.

相关

_GUICtrlEdit_GetSel, _GUICtrlEdit_ReplaceSel

示例/演示


#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[3] = [190, 378, -1], $aSel

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

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

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

    ; 设置选择项
    _GUICtrlEdit_SetSel($hEdit, 15, 20)

    ; 获取选择项
    $aSel = _GUICtrlEdit_GetSel($hEdit)
    _GUICtrlStatusBar_SetText($hStatusBar, "Start: " & $aSel[0])
    _GUICtrlStatusBar_SetText($hStatusBar, "End: " & $aSel[1], 1)

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