マウスカーソル位置を取得          <TOP>


マウスカーソル座標を取得します。

GetMessagePos メッセージが送られたときのカーソル位置座標を取得

 

マウスカーソルがフォーム上にある時のスクリーン座標を取得し表示します。

 

'================================================================
'= マウスカーソル位置を取得
'=    (GetMessagePos.bas)
'================================================================
#include "Windows.bi"

' メッセージが送られたときのカーソル位置座標を取得
Declare Function Api_GetMessagePos& Lib "user32" Alias "GetMessagePos" ()

Type POINTS
    X As Integer
    Y As Integer
End Type

Var Shared Text(3) As Object
For i = 0 To 3
    Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i+1)))
    Text(i).SetFontSize 14
Next

'================================================================
'=
'================================================================
Declare Sub MainForm_MouseMove edecl ()
Sub MainForm_MouseMove()
    Var pts As POINTS
    Var Ret As Long

    Ret = Api_GetMessagePos()
    pts.X = cint(Ret and &H7FFF)
    pts.Y = cint((Ret and &H7FFF0000) \ &H10000)

    Text(2).SetWindowText Format$(pts.X," #,###")
    Text(3).SetWindowText Format$(pts.Y," #,###")
End Sub

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