返回頂層窗口的插入符的坐標(biāo)位置。
WinGetCaretPos ( )
參數(shù)
無
返回值
成功: | 返回一個含有下列信息的數(shù)組: |
$array[0] = X 坐標(biāo) | |
$array[1] = Y 坐標(biāo) | |
失。 | 把 @error 設(shè)為 1。 |
注意
若設(shè)置了 CaretCoordMode 使用絕對位置則 WinGetCaretPos 對那些具有多文檔界面(MDI)的應(yīng)用程序獲得的坐標(biāo)值可能是不準(zhǔn)確的。請參考下面的示例。注意:有些程序可能會無論光標(biāo)實際位置在哪都只會返回某固定數(shù)值!
相關(guān)
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)
; 要獲取具有多文檔界面的文本編輯器的光標(biāo)位置,請參考下面這個更可靠的方法。
Func _CaretPos()
Local $x_adjust = 5
Local $y_adjust = 40
Opt("CaretCoordMode", 0) ;相對位置
Local $c = WinGetCaretPos() ;相對位置
Local $w = WinGetPos("") ;窗口位置
Local $f = ControlGetFocus("","") ;文本區(qū)域“句柄”
Local $e = ControlGetPos("", "", $f) ;文本區(qū)域位置
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 ;光標(biāo)在屏幕上的絕對位置
Else
SetError(1)
EndIf
EndFunc