# Funktionsreferenz

WinGetCaretPos

Gibt die Koordinaten des Einschaltzeichens des Fensters im Vordergrund zurück.

WinGetCaretPos ( )

Parameter

Keine.

Bemerkungen

WinGetCaretPos gibt bei "Multiple Document Interface (MDI)"-Programmen eventuell nicht die genauen Werte zurück, falls als Option "absolute CaretCoordMode" (siehe unten) genutzt wurde. Im Beispiel wird eine Annäherung (workaround) dargestellt. Zu beachten ist, dass manche Programme statische Koordinaten, unabhängig von der aktuellen Position des Einschaltzeichens, liefern!

Siehe auch

CaretCoordMode (Option)

Beispiel

$a = WinGetCaretPos()
If Not @error Then ToolTip("First Method Pos", $a[0], $a[1])
sleep(2000)
$b = _CaretPos()
If Not @error Then ToolTip("Second Method Pos", $b[0], $b[1])
sleep(2000)
; More reliable method to get caret coords in MDI text editors.
Func _CaretPos()
Local $x_adjust = 5
Local $y_adjust = 40
Opt("CaretCoordMode", 0) ;relative mode
Local $c = WinGetCaretPos() ;relative caret coords
Local $w = WinGetPos("") ;window's coords
Local $f = ControlGetFocus("","") ;text region "handle"
Local $e = ControlGetPos("", "", $f) ;text region coords
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 ;absolute screen coords of caret cursor
Else
SetError(1)
EndIf
EndFunc