Что нового

[Элементы GUI] Как Закрыть дочернюю форму без закрытия основной

flamehacker

Новичок
Сообщения
3
Репутация
0
Доброго времени суток . Помогите решить проблему. Как закрыть дочернюю форму окна без закрытия основной. У меня получается что при клике закрыть окно закрываются оба окна.

Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

;~ Opt('GUIOnEventMode',       1)
;~ Opt('MustDeclareVars',      1)
Global  $Form1, $Form2

#Region ### START Koda GUI section ### Form=c:\users\pavelturets\documents\form1.kxf
$Form1 = GUICreate("Кликер астралов", 393, 438, 366, 166)
$Menu = GUICtrlCreateMenu("Меню")
$ExitMenu = GUICtrlCreateMenuItem("Выход     Alt+F4", $Menu)
$MenuItem3 = GUICtrlCreateMenu("Астро")
$ClickCoord = GUICtrlCreateMenuItem("Кликер по координатам", $MenuItem3)
$ClickButt = GUICtrlCreateMenuItem("Кликер по кнопкам", $MenuItem3)
$CalcAstro = GUICtrlCreateMenu("Калькулятор астарлов")
$MenuItem5 = GUICtrlCreateMenu("Справка")
$Help = GUICtrlCreateMenuItem("Справка  F1"&@TAB&"F1", $MenuItem5)
$Autor = GUICtrlCreateMenuItem("Об авторе", $MenuItem5)
Dim $Form1_AccelTable[1][2] = [["{F1}", $Help]]
GUISetAccelerators($Form1_AccelTable)
GUISwitch($Form1)
GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###


#Region ### START Koda GUI section ### Form=C:\Users\pavelturets\Documents\AutoClickForm.kxf
$Form2 = GUICreate("Автоматический кликер", 405, 294, 342, 180)
$AstroBut1 = GUICtrlCreateButton("1-ый астрал", 32, 24, 89, 33)
$AstroBut2 = GUICtrlCreateButton("2-ой Астрал", 32, 72, 89, 33)
$AstroBut3 = GUICtrlCreateButton("3-ий Астрал", 32, 120, 89, 33)
$AstroBut4 = GUICtrlCreateButton("4-ый астрал", 32, 168, 89, 33)
$AstroBut5 = GUICtrlCreateButton("5-ый Астрал", 32, 216, 89, 33)
$timeinput = GUICtrlCreateInput("с", 272, 48, 49, 21)
$Label1 = GUICtrlCreateLabel("Время клика", 272, 24, 70, 17)
$CollectBut = GUICtrlCreateButton("Собрать Все", 160, 24, 89, 33)
$ConectBut = GUICtrlCreateButton("Объединить Все", 160, 72, 89, 33)
$YesBut = GUICtrlCreateButton("Кнопка Да", 160, 120, 89, 33)
$StartSearch = GUICtrlCreateButton("Начать Поиск", 208, 184, 145, 65)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###

Func _CloseWin()
    GUIDelete(@GUI_WinHandle)
EndFunc

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $ClickCoord
			$Form2=GUISetState(@SW_SHOW)

		Case $GUI_EVENT_CLOSE

			Exit

	EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
flamehacker,
Читайте в справке:
Код:
GUIGetMsg(1)
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
или так
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

;~ Opt('GUIOnEventMode',       1)
;~ Opt('MustDeclareVars',      1)
Global $Form1, $Form2

$Form1 = GUICreate("Кликер астралов", 393, 438, 366, 166)
$Menu = GUICtrlCreateMenu("Меню")
$ExitMenu = GUICtrlCreateMenuItem("Выход     Alt+F4", $Menu)
$MenuItem3 = GUICtrlCreateMenu("Астро")
$ClickCoord = GUICtrlCreateMenuItem("Кликер по координатам", $MenuItem3)
$ClickButt = GUICtrlCreateMenuItem("Кликер по кнопкам", $MenuItem3)
$CalcAstro = GUICtrlCreateMenu("Калькулятор астарлов")
$MenuItem5 = GUICtrlCreateMenu("Справка")
$Help = GUICtrlCreateMenuItem("Справка  F1" & @TAB & "F1", $MenuItem5)
$Autor = GUICtrlCreateMenuItem("Об авторе", $MenuItem5)
Dim $Form1_AccelTable[1][2] = [["{F1}", $Help]]
GUISetAccelerators($Form1_AccelTable)
GUISwitch($Form1)
GUISetState(@SW_SHOW)


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $ClickCoord
			_win_child()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Func _win_child()
	$Form2 = GUICreate("Автоматический кликер", 405, 294, 342, 180)
	$AstroBut1 = GUICtrlCreateButton("1-ый астрал", 32, 24, 89, 33)
	$AstroBut2 = GUICtrlCreateButton("2-ой Астрал", 32, 72, 89, 33)
	$AstroBut3 = GUICtrlCreateButton("3-ий Астрал", 32, 120, 89, 33)
	$AstroBut4 = GUICtrlCreateButton("4-ый астрал", 32, 168, 89, 33)
	$AstroBut5 = GUICtrlCreateButton("5-ый Астрал", 32, 216, 89, 33)
	$timeinput = GUICtrlCreateInput("с", 272, 48, 49, 21)
	$Label1 = GUICtrlCreateLabel("Время клика", 272, 24, 70, 17)
	$CollectBut = GUICtrlCreateButton("Собрать Все", 160, 24, 89, 33)
	$ConectBut = GUICtrlCreateButton("Объединить Все", 160, 72, 89, 33)
	$YesBut = GUICtrlCreateButton("Кнопка Да", 160, 120, 89, 33)
	$StartSearch = GUICtrlCreateButton("Начать Поиск", 208, 184, 145, 65)
	GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
	GUISetState()
	While 1
		$nMsg = GUIGetMsg()
		Switch $nMsg
			Case $GUI_EVENT_CLOSE
				GUIDelete()
				Return
		EndSwitch
	WEnd
EndFunc   ;==>_win_child
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
flamehacker,
Код:
#include <GUIConstantsEx.au3>

Global $iRow = Int(@DesktopHeight / 200), $iItem = Int(@DesktopWidth / 200), $iCount

For $i = 0 To $iRow - 1
	For $j = 0 To $iItem - 1
		$iCount += 1
		GUICreate($iCount, 150, 150, 50 + $j * 200, 50 + $i * 200)
		GUISetState()
	Next
Next

While $iCount
	$aMSG = GUIGetMsg(1)
	Switch $aMSG[0]
		Case $GUI_EVENT_CLOSE
			GUIDelete($aMSG[1])
			$iCount -= 1
	EndSwitch
WEnd
MsgBox(64, 'Info', 'All windows closed')
 
Верх