W
w3d1
Гость
Словил удивительную багу.
При первом (и только при первом!) запуске скомпилированной программы $hGUI ни в какую не ловит $GUI_EVENT_CLOSE.
Остальное работает ($WM_NOTIFY и т.д.)
Если перезапустить прогу - все отлично работает.
Почему это может быть?
Если запускаю из SciTE - тоже самое. Т.е. открываю *.au3 - F5 - не закрывается. Закрываю скрипт из трея, опять F5 - все работает.
Ничего не понимаю.
При первом (и только при первом!) запуске скомпилированной программы $hGUI ни в какую не ловит $GUI_EVENT_CLOSE.
Остальное работает ($WM_NOTIFY и т.д.)
Если перезапустить прогу - все отлично работает.
Почему это может быть?
Код:
; всякие объявления...
_SetFields()
GUISetState(@SW_SHOW, $hGUI)
; основной цикл
While 1 = 1
......
Wend
Func _SetFields()
Local $exStyles = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES), $hListView
$hGUI = GUICreate("List fields", 200, 450, 100, 100, $WS_OVERLAPPEDWINDOW, BitOR($WS_EX_ACCEPTFILES, $WS_EX_TOPMOST))
$nListView = GUICtrlCreateListView("", 2, 2, 197, 448)
$hListView = GUICtrlGetHandle(-1)
GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
_GUICtrlListView_SetUnicodeFormat($hListView, False)
_GUICtrlListView_AddColumn($hListView, "Field", 100)
_GUICtrlListView_AddColumn($hListView, "Status", 90)
_GUICtrlListView_SetItemCount($hListView, 30)
_GUICtrlListView_AddArray($hListView, $aFields)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUIRegisterMsg($WM_LBUTTONUP, "WM_LBUTTONUP")
GUIRegisterMsg($WM_MOUSEMOVE, "WM_MOUSEMOVE")
GUISetOnEvent($GUI_EVENT_CLOSE, "_GUIEvents")
EndFunc ;==>_SetFields
Func _GUIEvents()
Switch @GUI_CtrlId
Case $GUI_EVENT_CLOSE
$iAns = MsgBox(33, "", "Save settings?")
If $iAns = 1 Then
.....
EndIf
GUISetState(@SW_HIDE, $hGUI)
EndSwitch
EndFunc ;==>_GUIEvents
Если запускаю из SciTE - тоже самое. Т.е. открываю *.au3 - F5 - не закрывается. Закрываю скрипт из трея, опять F5 - все работает.
Ничего не понимаю.