Function Reference

GUIGetCursorInfo

GUIウィンドウに対するマウスカーソルの相対位置を取得します。

GUIGetCursorInfo ( [winhandle] )

 

パラメータ

winhandle [オプション] 使用するウィンドウのハンドル。省略すると"現在の"ウィンドウが使用されます。

 

返し値

成功 マウスカーソル情報を格納した5要素を持つ配列を返します。
$array[0] = X座標 (水平方向)
$array[1] = Y座標 (垂直方向)
$array[2] = 第1ボタンの状態 (押されている場合1、押されていない場合0)
$array[3] = 第2ボタンの状態 (押されている場合1、押されていない場合0)
$array[4] = マウスカーソルが当たっているコントロールのID (無い場合0)
失敗 0を返し@errorを1に設定します。

 

注意

取得される座標はGUIウィンドウに対する相対値です(一般にクライアント座標と呼ばれます)。

"winhandle"パラメータを使用すると指定したウィンドウが新しい"現在の"ウィンドウになります。

GUICreateによって作成したウィンドウの場合のみマウスカーソル位置の取得がおこなえます。winhandleを使用しない場合、GUIウィンドウがアクティブな場合のみ、関数は成功します。

ListViewItem、TreeViewItemコントロールIDは返されません。親のListview、TreeViewコントロールIDのみ返されます。

 

関連

GUICreate, GUIGetMsg

 


#include <GUIConstantsEx.au3>

Opt('MustDeclareVars', 1)

Global $x, $y

Example()

Func Example()
    Local $msg
   
    HotKeySet("{Esc}", "GetPos")

    GUICreate("Press Esc to Get Pos", 400, 400)
    $x = GUICtrlCreateLabel("0", 10, 10, 50)
    $y = GUICtrlCreateLabel("0", 10, 30, 50)
    GUISetState()

    ; ダイアログが閉じられるまでGUIを実行
    Do
        $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

Func GetPos()
    Local $a
   
    $a = GUIGetCursorInfo()
    GUICtrlSetData($x, $a[0])
    GUICtrlSetData($y, $a[1])
EndFunc   ;==>GetPos