- Сообщения
- 8,673
- Репутация
- 2,484
Немного изменённый пример из справки.
Тут я всего лишь скрыл и отобразил окно, это кстати всплыло когда я пытался сделать сворачивание в трей и восстановление оттуда - в моём случае горячие клавиши перестали работать, поэтому я и полез копаться в GUISetAccelerators, хотя дело не в ней.
Заметьте, спрятал я окно через GUISetState, а отобразил через WinSetState. Если использовать что-то то одно, то проблемы не возникает, но всё же мне кажется что это неправильное поведение, элементы не должны так переставать реагировать.
Тут я всего лишь скрыл и отобразил окно, это кстати всплыло когда я пытался сделать сворачивание в трей и восстановление оттуда - в моём случае горячие клавиши перестали работать, поэтому я и полез копаться в GUISetAccelerators, хотя дело не в ней.
Заметьте, спрятал я окно через GUISetState, а отобразил через WinSetState. Если использовать что-то то одно, то проблемы не возникает, но всё же мне кажется что это неправильное поведение, элементы не должны так переставать реагировать.
Код:
; A simple custom messagebox that uses the MessageLoop mode
#include <GUIConstantsEx.au3>
$hGUI = GUICreate("Custom Msgbox", 210, 80)
GUICtrlCreateLabel("Please click a button!", 10, 10)
$YesID = GUICtrlCreateButton("Yes", 10, 50, 50, 20)
$NoID = GUICtrlCreateButton("No", 80, 50, 50, 20)
$ExitID = GUICtrlCreateButton("Exit", 150, 50, 50, 20)
; Set accelerators for Ctrl+y and Ctrl+n
Dim $AccelKeys[2][2]=[["^y", $YesID], ["^n", $NoID]]
GUISetAccelerators($AccelKeys)
GUISetState(@SW_SHOW) ; display the GUI
;========================= Imitation of hiding and restoring the GUI =========================
GUISetState(@SW_HIDE)
WinSetState($hGUI, "", @SW_SHOW)
;========================= Imitation of hiding and restoring the GUI =========================
Do
$msg = GUIGetMsg()
Select
Case $msg = $YesID
MsgBox(0, "You clicked on", "Yes")
Case $msg = $NoID
MsgBox(0, "You clicked on", "No")
Case $msg = $ExitID
MsgBox(0, "You clicked on", "Exit")
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "You clicked on", "Close")
EndSelect
Until $msg = $GUI_EVENT_CLOSE Or $msg = $ExitID