Что нового

Элементы GUI Отдельные окна в фоне выходили из фона одновременно.

aptyp

Новичок
Сообщения
36
Репутация
0
Есть $Form1, в которой при нажатии кнопки [X] появляется MsgBox с сообщением о выходе.
Когда появляется MsgBox, $Form1 становится не активна (@SW_DISABLE).

Если нажать на другое WIndows окно, $Form1 и MsgBox уходят на задний план и висят там по отдельности и можно нажаться на $Form1 и MsgBox отдельно.
Как сделать, чтобы при нажатии на неактивное окно $Form1, из фона выходила и MsgBox, а за ней уже $Form1?
То есть надо, чтобы было так, если активна MsgBox, то при нажатии на MsgBox, появлялось окно MsgBox и за ней $Form1.

Или такой вопрос, как отловить нажатие мышью на конкретное окно?

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>

$Form1 = GUICreate("Form 1", 320, 240)

GUISetState(@SW_SHOW, $Form1)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            _Exit()
    EndSwitch
WEnd

Func _Exit()
    GUISetState(@SW_DISABLE, $Form1)
    $hWnd = MsgBox($MB_YESNO, 'Выход', 'Закрыть окно?')
    If $hWnd = $IDYES Then
        Exit
    Else
        GUISetState(@SW_RESTORE, $Form1)
        GUISetState(@SW_ENABLE, $Form1)
    EndIf
EndFunc
 
Последнее редактирование:

Prog

Продвинутый
Сообщения
537
Репутация
65
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>

$Form1 = GUICreate("Form 1", 320, 240)

GUISetState(@SW_SHOW, $Form1)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            _Exit()
    EndSwitch
WEnd

Func _Exit()
    GUISetState(@SW_DISABLE, $Form1)
    $hWnd = MsgBox($MB_YESNO, 'Выход', 'Закрыть окно?', 0, $Form1)
    If $hWnd = $IDYES Then
        Exit
    Else
        GUISetState(@SW_RESTORE, $Form1)
        GUISetState(@SW_ENABLE, $Form1)
    EndIf
EndFunc

По второму вопросу - https://autoit-script.ru/docs/functions/guigetmsg.htm
Смотрите $GUI_EVENT_PRIMARYDOWN, $GUI_EVENT_PRIMARYUP, $GUI_EVENT_SECONDARYDOWN и $GUI_EVENT_SECONDARYUP.
 
Верх