#include #include Global $hGui1, $hGui2 = -99, $idMsgBox, $idZurueck, $idbtnExit2 ;_CreateGui2() ;entweder hier oder erst wenn benötigt ($idbtmToGui2 Klick) #Region GUI1 ##################################################################################### $hGui1 = GUICreate('GUI 1', 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX)) ;erzeugt eine GUI , das zurückgebebene Handle wird in der Variablen $hGui1 gespeichert ;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar $idbtnToGui2 = GUICtrlCreateButton('&Aufruf GUI 2', 20, 20, 100, 21) GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP) ;verankert den Button "Aufruf Gui 2" links und oben und fixiert die Größe ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand $idbtnICQ = GUICtrlCreateButton('&ICQ', 20, 50, 100, 21) GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP) ;verankert den Button "ICQ" links und oben und fixiert die Größe ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand $idbtnExit1 = GUICtrlCreateButton('be&enden', 280, 225, 100, 21) GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM) ;verankert den Button "beenden" links und oben und fixiert die Größe ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand GUISetState(@SW_SHOW, $hGui1) #EndRegion ########################################################################################### While 1 $nMsg = GUIGetMsg(1) ;extended Modus wichtig!! Switch $nMsg[1] ;für welches Fenster ist die Message Case $hGui1 ;ab hier ist Gui 1 dran Switch $nMsg[0] ;welche Message wurde ausgelöst Case $idbtnToGui2 GUISetState(@SW_DISABLE, $hGui1) ;Gui 1 gegen Benutzereingaben sperren If $hGui2 = -99 Then _CreateGui2() ;nur wenn nicht am Anfang bereits erzeugt nötig, dann auf Vorbelegung der Variable in Global achten) GUISetState(@SW_SHOW, $hGui2) ;Gui 2 anzeigen Case $idbtnICQ MsgBox(0, "", "Jetzt würde ICQ gestartet", 0, $hGui1) ;Run("C:\Program Files\ICQ7.0\ICQ.exe") Case $idbtnExit1, $GUI_EVENT_CLOSE _end() EndSwitch Case $hGui2 ;ab hier ist Gui 2 dran Switch $nMsg[0] ;welche Message wurde ausgelöst Case $idMsgBox MsgBox(0, 'Test', 'Test', 0, $hGui2) Case $idZurueck, $GUI_EVENT_CLOSE GUISetState(@SW_ENABLE, $hGui1) ;Gui 1 wieder entsperren GUISetState(@SW_HIDE, $hGui2) ;Gui 2 verstecken Case $idbtnExit2 _end() EndSwitch EndSwitch WEnd Func _CreateGui2() $hGui2 = GUICreate('GUI 2', 400, 280, 200, 50, -1, -1, $hGui1) ;wichtig ist der letzte Parameter ;erzeugt eine GUI als Child von Gui1, das zurückgebebene Handle wird in der Variablen $hGui2 gespeichert $idMsgBox = GUICtrlCreateButton('&MsgBox', 20, 20, 100, 21) $idZurueck = GUICtrlCreateButton('&Zurück zu GUI 1', 20, 50, 100, 21) $idbtnExit2 = GUICtrlCreateButton('be&enden', 280, 250, 100, 21) GUISetState(@SW_HIDE, $hGui2) ;Gui 2 vorerst verstecken EndFunc ;==>_CreateGui2 Func _end() GUIDelete($hGui2) GUIDelete($hGui1) Exit EndFunc ;==>_end