キャレットの現在位置を取得          <TOP>


キャレットの現在位置を取得表示します。

GetCaretPos キャレットの現在位置を取得

 

キャレット位置をタイトルバーに表示しています。

 

'================================================================
'= キャレットの現在位置を取得
'=    (GetCaretPos.bas)
'================================================================
#include "Windows.bi"

Type POINTAPI
    X As Long
    Y As Long
End Type

' キャレットの現在位置を取得
Declare Function Api_GetCaretPos& Lib "user32" Alias "GetCaretPos" (lpPoint As POINTAPI)

Var Shared Edit1 As Object
Edit1.Attach GetDLgItem("Edit1") : Edit1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Function GetEdCursX() As Long
Function GetEdCursX() As Long
    Var pt As POINTAPI
    Var Ret As Long

    Ret = Api_GetCaretPos(pt)
    GetEdCursX = pt.X
End Function

'================================================================
'=
'================================================================
Declare Function GetEdCursY() As Long
Function GetEdCursY() As Long
    Var pt As POINTAPI
    Var Ret As Long

    Ret = Api_GetCaretPos(pt)
    GetEdCursY = pt.Y
End Function

'================================================================
'=
'================================================================
Declare Sub Edit1_Change edecl ()
Sub Edit1_Change()
    Var XPos As Long
    Var YPos As Long
    
    XPos = GetEdCursX
    YPos = GetEdCursY
    SetWindowText "X:" & Trim$(Str$(XPos)) & "/Y:" & Trim$(Str$(YPos))
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End