找回密码
 加入
搜索
查看: 1455|回复: 4

GUICtrlCreateEdit 中如何移动 插入符(caret,光标) 到指定位置!

[复制链接]
发表于 2009-7-24 19:46:38 | 显示全部楼层 |阅读模式
本帖最后由 病毒专收员 于 2009-7-24 23:09 编辑

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

$Form1 = GUICreate("窗体1", 413, 305, 302, 218)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 409, 297)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit6",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUISetState(@SW_SHOW)


While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd


如何控制 插入符(caret,光标) 移动到文本 Edit6 后面
发表于 2009-7-24 20:42:25 | 显示全部楼层
_GUICtrlEdit_SetSel($Edit1, 2, 2)
发表于 2009-7-24 21:55:02 | 显示全部楼层
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("窗体1", 413, 305, 302, 218)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 409, 297)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit6",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUICtrlSetData(-1, "Edit1",1)
GUISetState(@SW_SHOW)

GUICtrlSetState(-1, $GUI_FOCUS)


Sleep(2000)
_SetCaretPos(200, 1)
Sleep(2000)
_SetCaretPos(50, 1)



While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

Func _GetCaretPos()
        Local $aXY[2], $iResult, $tBuffer

        $tBuffer = DllStructCreate("int X;int Y")
        $iResult = DllCall("User32.dll", "int", "GetCaretPos", "ptr", DllStructGetPtr($tBuffer))
        $aXY[0] = DllStructGetData($tBuffer, "X")
        $aXY[1] = DllStructGetData($tBuffer, "Y")
        Return $aXY
EndFunc        ;==>_GetCaretPos

Func _SetCaretPos($iX, $iY)
        Local $iResult
        $iResult = DllCall("User32.dll", "int", "SetCaretPos", "int", $iX, "int", $iY)
        Return $iResult[0] <> 0
EndFunc        ;==>_SetCaretPos
发表于 2009-7-24 22:00:42 | 显示全部楼层
不错,控制插入符的例子不多,学习下
 楼主| 发表于 2009-7-24 23:08:40 | 显示全部楼层
good~`` 感谢大家!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-2 17:59 , Processed in 0.073288 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表