Здравствуйте. У меня появилась заминка со скриптом такого содержания
Вся проблема в том, что при использовании внутри цикла функции _Find() окна сообщений
хоть единожды и после выхода из цикла главное окно само по себе сворачивается, игнорируя "SW_SHOW.
Опытным путем я выяснил, что происходящее верно только при использовании стилей для главного окна $WS_CAPTION, $WS_EX_TOOLWINDOW.
Проблема нивелируется при неиспользовании данных стилей, а также в случае, если msgbox ни разу не вызван в ф-ции -Find. Подскажите, пожалуйста, нормально ли это или как можно обойти, всё-таки используя стили и окна сообщений?
Код:
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
HotKeySet('{ESC}', '_Exit')
$1 = GUICreate("Устанавливает метку выбора", 400, 300, -1, -1, $WS_CAPTION, $WS_EX_TOOLWINDOW)
$hButton = GUICtrlCreateButton("", 130, 100, 150, 80)
GUISetState()
; Цикл выполняется, пока окно не будет закрыто
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $hButton
_find($1)
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
GUIDelete()
Func _Find($hParentGUI = 0)
GUISetState(@SW_DISABLE, $hParentGUI)
$hGUIFind = GUICreate('Поиск записи', 253, 147)
$hSearchButton = GUICtrlCreateButton("Искать", 48, 112, 75, 25)
$hCancelSearchButton = GUICtrlCreateButton("Отмена", 148, 109, 75, 25)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $hCancelSearchButton
;$iAnswer = MsgBox(36, 'Выйти в главное окно?', 'Вы действительно хотите этого?')
;If $iAnswer = 6 Then
ExitLoop
;EndIf
Case $hSearchButton
MsgBox(0,'','тра-та-та')
EndSwitch
Wend
GUISetState(@SW_ENABLE, $hParentGUI)
GUISetState(@SW_SHOW, $hParentGUI)
GUIDelete($hGUIFind)
EndFunc;==>_Find
Func _Exit()
Exit
EndFunc ;==>_Exit
Вся проблема в том, что при использовании внутри цикла функции _Find() окна сообщений
хоть единожды и после выхода из цикла главное окно само по себе сворачивается, игнорируя "SW_SHOW.
Опытным путем я выяснил, что происходящее верно только при использовании стилей для главного окна $WS_CAPTION, $WS_EX_TOOLWINDOW.
Проблема нивелируется при неиспользовании данных стилей, а также в случае, если msgbox ни разу не вызван в ф-ции -Find. Подскажите, пожалуйста, нормально ли это или как можно обойти, всё-таки используя стили и окна сообщений?