Как я могу разрешить действия с моим графическим интерфейсом, только когда мышь наводит курсор на графический интерфейс - PullRequest
0 голосов
/ 11 февраля 2019

Я хочу разрешить действия с моим созданным графическим интерфейсом только тогда, когда мышь наведет курсор на графический интерфейс.Теперь я могу закрыть свой графический интерфейс с помощью ESC , но это должно быть возможно только при наведении курсора мыши на графический интерфейс.

  • Как я могу это сделать?

В моем хобби-проекте я попробую немного с микроиграми.Теперь я хотел бы сделать что-то в Autoit для.Следующий код является лишь примером.Когда вы можете дать мне несколько советов, я увеличу свой графический интерфейс.

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

$hGUI = GUICreate("GameTryout", 500, 500, -1, -1)
$cEdit = GUICtrlCreateEdit("test", 20, 20, 200, 100)
GUISetState(@SW_SHOW, $hGUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            GUIDelete($hGui)
            Exit
    EndSwitch
WEnd
  • Как мне избежать закрытия моего графического интерфейса без подключения мыши с помощью мыши?

Спасибо за ваши предложения.

1 Ответ

0 голосов
/ 11 февраля 2019

Вы можете использовать MouseGetPos() и WinGetPos(), чтобы проверить, наведен ли курсор мыши на ваш графический интерфейс._isMouseOnGui() должно соответствовать вашим требованиям:

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

$hGUI = GUICreate("GameTryout", 500, 500, -1, -1)
$cEdit = GUICtrlCreateEdit("test", 20, 20, 200, 100)
GUISetState(@SW_SHOW, $hGUI)

Func _isMouseOnGui($hGui)
    Local $aMouse = MouseGetPos()
    Local $aGui   = WinGetPos($hGui)

    If $aMouse[0] >= $aGui[0] And _
       $aMouse[1] >= $aGui[1] And _
       $aMouse[0] <= $aGui[0] + $aGui[2] And _
       $aMouse[1] <= $aGui[1] + $aGui[3] Then
       Return True
    EndIf

    Return False
EndFunc

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            If _isMouseOnGui($hGui) Then
                GUIDelete($hGui)
                Exit
            EndIf
    EndSwitch
WEnd

Расширьте свои действия в GUI, просто проверив положение окна / GUI и положение мыши для будущих функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...