jest kilka sposobów:
1. bez zbędnych zabaw (wcześniej podany przez kolegów)
$Form1 = GUICreate("Form1", 201, 101, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Wyjscie")
$Button1 = GUICtrlCreateButton("1", 8, 8, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent($Button1 , "2gui")
$Button2 = GUICtrlCreateButton("2", 112, 64, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; po zakończeniu każdego gui musisz dawać jego status czy jest Show czy Hide
$Form2= GUICreate("Form1", 201, 101, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Wyjscie")
$Button3= GUICtrlCreateButton("1", 8, 8, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent($Button1 , "2gui")
$Button4= GUICtrlCreateButton("2", 112, 64, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; po zakończeniu każdego gui musisz dawać jego status czy jest Show czy Hide
i takich gui możesz tworzyć w nieskończoność byle się nazwy nie powtarzały co jest chyba oczywiste... albo pobawić się w tzw. Parrent gui (ojciec) and many childs gui (dzieci) którego do końca nie ogarniam ale ponoć jest to bardzo profesjonalne. możesz oblukać to w tym example:
osobiście polecam metodę pierwszą