Функция GUIGetCursorInfo

 ↑  ←  Описание функции


GUIGetCursorInfo

Возвращает координаты курсора мыши относительно окна GUI.

GUIGetCursorInfo ( [ winhandle ] )

Параметры

winhandle [необязательный] Дескриптор используемого окна. Если не указать, будет использоваться для текущего окна.

Возвращаемое значение

Успех:Возвращает пять элементов массива, содержащего информацию курсора мыши:
$array[0] = X - координата по горизонтали
$array[1] = Y - координата по вертикали
$array[2] = Состояние первой кнопки мыши (1 - нажата, 0 - не нажата)
$array[3] = Состояние второй кнопки мыши (1 - нажата, 0 - не нажата)
$array[4] = Идентификатор элемента, на который наведён курсор мыши (или 0, если не наведено)
Ошибка:Возвращает 0 и @error = 1

Примечания

Координаты возвращаются относительно GUI-окна (известны, как клиентский координаты).

Если указывается "winhandle" (дескриптор), то указанное окно становится новым текущим окном.

Координаты курсора мыши успешно возвращаются только для окна созданного функцией GUICreate. Если не указан дескриптор, то успешный возврат только, если окно активно.

Идентификаторы пунктов ListViewItem или TreeViewItem никогда не будут возвращены, а только идентификаторы родительских Listview или TreeView, в которых находятся эти пункты.

См. также

GUICreate, GUIGetMsg

Пример

#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Global $iInfo

GUICreate("Информация курсора", 420, 300)
$iInfo = GUICtrlCreateLabel('', 10, 10, 150, 72, $WS_BORDER)
GUICtrlCreateEdit("Строка", 170, 10, 240, 72)
GUICtrlCreateLabel("Надпись", 10, 90, 400, 40, $WS_BORDER)
GUICtrlCreateButton("Кнопка", 150, 140, 100, 27)
GUISetState()

; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_MOUSEMOVE
            _MemoWrite()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func _MemoWrite()
    Local $aInfo = GUIGetCursorInfo()
    If $aInfo[4] <> $iInfo Then
        GUICtrlSetData($iInfo, _
                '  x = ' & $aInfo[0] & @CRLF & _
                '  y = ' & $aInfo[1] & @CRLF & _
                '  ID = ' & $aInfo[4] & @CRLF & _
                '  Текст = ' & GUICtrlRead($aInfo[4]))
    EndIf
EndFunc   ;==>_MemoWrite