GUIGetCursorInfo
获取相对于 GUI 窗口的鼠标光标位置.
GUIGetCursorInfo ( [winhandle] )
参数
winhandle
|
[可选] 目标窗口句柄. 若省略此参数, 则使用当前窗口.
|
返回值
成功:
|
返回包含光标信息的 5 元素数组:
$aArray[0] = X 坐标 (水平)
$aArray[1] = Y 坐标 (垂直)
$aArray[2] = 鼠标左键按下 (1 为按下, 0 为未按下)
$aArray[3] = 鼠标右键按下 (1 未按下, 0 为未按下)
$aArray[4] = 鼠标悬停位置的控件 ID( 0 为没有控件)
|
失败:
|
设置 @error 为非 0 值
|
备注
返回相对于 GUI 窗口的坐标值 (如已知客户端的坐标).
如果 "窗口句柄" 参数被使用, 则指定的窗口成为新的 "当前" 窗口.
获取鼠标光标位置仅适用于由 GUICreate() 创建的窗口. 但如果 GUI 窗口处于激活状态, 即使该窗口没有句柄, 函数也会成功.
ListViewItem 或 TreeViewItem 的控件 ID 永远不会被返回, 只能返回父层 Listview 或 TreeView 的控件 ID.
相关
GUICreate, GUIGetMsg
函数示例
#include <GUIConstantsEx.au3>
Global $g_idX = 0, $g_idY = 0
Example()
Func Example()
HotKeySet("{ESC}", "GetPos")
GUICreate("Press Esc to Get Pos", 400, 400)
$g_idX = GUICtrlCreateLabel("0", 10, 10, 50)
$g_idY = GUICtrlCreateLabel("0", 10, 30, 50)
GUISetState(@SW_SHOW)
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUIDelete()
EndFunc ;==>Example
Func GetPos()
Local $a = GUIGetCursorInfo()
GUICtrlSetData($g_idX, $a[0])
GUICtrlSetData($g_idY, $a[1])
EndFunc ;==>GetPos
----------------------------------------
|