子ウィンドウの作成
まずメインウィンドウを作成し、その中に子ウィンドウを作成します。
さらに子ウィンドウの中に子子ウィンドウ(計3つのウィンドウ)を作成します。
各ウィンドウに対して必ず* $GUI_EVENT_CLOSEに対しての条件つき命令文を書きましょう。
*無限ループに陥り、終了できなくなります。
$GUI_EVENT_CLOSEは、定義したボタンやメニュー、×ボタンでダイアログボックス(ウィンドウ)が閉じられたというイベントID。
$GUI_EVENT_CLOSEを使用するには、GUIConstantsEx.au3をインクルドする必要があります。
#include <GUIConstantsEx.au3>
;~ メインウィンドウ
$Gui = GUICreate("メインウィンドウ", 320, 120)
$btn1 = GUICtrlCreateButton("子ウィンドウを開く", 10, 40, 300, 20)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $btn1
;~ 子ウィンドウ - 開始
$Gui2 = GUICreate("子ウィンドウ", 270, 300, -1, -1, -1, -1, $Gui)
$btn2 = GUICtrlCreateButton("子子ウィンドウを開く", 10, 40, 150, 20)
GUISetState()
While 1
$msg2 = GUIGetMsg()
Select
Case $msg2 = $GUI_EVENT_CLOSE
GUIDelete($Gui2)
ExitLoop
Case $msg2 = $btn2
;~ 子子ウィンドウ - 開始
$Gui3 = GUICreate("子子ウィンドウ", 350, 100, -1, -1, -1, -1, $Gui2)
GUISetState()
While 1
$msg3 = GUIGetMsg()
Select
Case $msg3 = $GUI_EVENT_CLOSE
GUIDelete($Gui3)
ExitLoop
EndSelect
WEnd
;~ 子子ウィンドウ - ここまで
EndSelect
WEnd
;~ 子ウィンドウ - ここまで
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd