返回介绍

Function WinGetCaretPos

发布于 2020-03-05 18:21:34 字数 1680 浏览 1221 评论 0 收藏 0

WinGetCaretPos

返回顶层窗口的插入符的坐标位置。

WinGetCaretPos ( )

参数

返回值

成功:返回一个含有下列信息的数组:
$array[0] = X 坐标
$array[1] = Y 坐标
失败:把 @error 设为 1。

注意

若设置了 CaretCoordMode 使用绝对位置则 WinGetCaretPos 对那些具有多文档界面(MDI)的应用程序获得的坐标值可能是不准确的。请参考下面的示例。注意:有些程序可能会无论光标实际位置在哪都只会返回某固定数值!

相关

CaretCoordMode(选项)

示例


$a = WinGetCaretPos()
If Not @error Then ToolTip("使用第一种方法获得的位置", $a[0], $a[1])
sleep(2000)

$b = _CaretPos()
If Not @error Then ToolTip("使用第二种方法获得的位置", $b[0], $b[1])
sleep(2000)

; 要获取具有多文档界面的文本编辑器的光标位置,请参考下面这个更可靠的方法。
Func _CaretPos()
Local $x_adjust = 5
Local $y_adjust = 40

Opt("CaretCoordMode", 0) ;相对位置
Local $c = WinGetCaretPos() ;相对位置
Local $w = WinGetPos("") ;窗口位置
Local $f = ControlGetFocus("","") ;文本区域“句柄”
Local $e = ControlGetPos("", "", $f) ;文本区域位置

Local $t[2]
If IsArray($c) and IsArray($w) and IsArray($e) Then
$t[0] = $c[0] + $w[0] + $e[0] + $x_adjust
$t[1] = $c[1] + $w[1] + $e[1] + $y_adjust
Return $t ;光标在屏幕上的绝对位置
Else
SetError(1)
EndIf
EndFunc


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文