amel27
Цитата:
чем не устраивает простое отключение/включение родительского окна?
|
Ну например, в панели задачь появляется дополнительная вкладка
, или если сделать поверх всех окон гуи, то вызываемое окно буде за ним... можно конечно выкрутится функцией WinSetOnTop, но это, имхо, не удобно...
В идеале, хочется чтобы можно было вызвать окно сохранения (к примеру), и нажимая на окно гуи, чтобы вызванное окно мигало, точно также как это происходит если вызвать дочернее окно гуи... вот пример:
Код:
#include <GUIConstants.au3>
$ParentWin = GUICreate("Parent GUI", 250, 250)
$Button = GUICtrlCreateButton("Child", 20, 50)
GUISetState()
$ChildWin = GUICreate("Child GUI", 200, 200, -1, -1, -1, -1, $ParentWin)
While 1
$msg1 = GUIGetMsg()
Select
Case $msg1 = $GUI_EVENT_CLOSE
Exit
Case $msg1 = $Button
GUISetState(@SW_DISABLE, $ParentWin)
GUISetState(@SW_SHOW, $ChildWin)
While 1
$msg2 = GUIGetMsg()
Select
Case $msg2 = $GUI_EVENT_CLOSE
GUISetState(@SW_RESTORE, $ParentWin)
GUISetState(@SW_ENABLE, $ParentWin)
GUISetState(@SW_HIDE, $ChildWin)
ExitLoop
EndSelect
Wend
EndSelect
WEnd
Кстати, почти такой же способ (в плане задумки функиональности) как ты привёл в примере, я использовал для скрипта который разукрашивает скрипты для поста
. Ты его уже видел? тот который я запостил
тут.
P.S
Вместо WinSetState лучше GuiSetState, и порядок таких объявлении очень важен... если именно для дочернего гуи, то так как я привёл в посте (@SW_HIDE в конце), это идеальный способ (таким образом не мигает окно родительского гуи в момент его активации).
И ещё, вместо WinActivate("Title") лучше WinSetState("Title", "", @SW_RESTORE), это если для гуи, оно быстрее срабатывает.
P.S.S.
А ты не знаешь случам как решить задачку про проверку на нажатие определённой клавиши, кнопки мышки, или любого другого действия со стороны пользователя? (Которую я тоже привёл в
посте со скриптом для разукрашивания).