faldo Posted October 26, 2007 Posted October 26, 2007 I'm having some trouble with the GUISetState() function. Even though it has a WinHandle parameter it seems only the last GUI that was created can be "Set" to whatever state IE: #include <GUIConstants.au3> GUICreate("My GUI1", 200, 200, 100, 100) $Button1 = GUICtrlCreateButton("Button 1", 50, 50) GUISetState (@SW_SHOW) GUICreate("My GUI2", 200, 200, 320, 100) $Button2 =GUICtrlCreateButton("Button 2", 50, 50) GUISetState (@SW_SHOW) While 1 $msg = GUIGetMsg() If $msg = $Button1 then GUISetState (@SW_Hide, "My GUI1") If $msg = $Button2 then GUISetState (@SW_Hide, "My GUI2") If $msg = $GUI_EVENT_CLOSE Then ExitLoop Wend Check out my other scripts: RDP antihammer/blacklist generator | Phemex cryptocurrency exchange API
Monamo Posted October 26, 2007 Posted October 26, 2007 I'm having some trouble with the GUISetState() function. Even though it has a WinHandle parameter it seems only the last GUI that was created can be "Set" to whatever state IE: #include <GUIConstants.au3> GUICreate("My GUI1", 200, 200, 100, 100) $Button1 = GUICtrlCreateButton("Button 1", 50, 50) GUISetState (@SW_SHOW) GUICreate("My GUI2", 200, 200, 320, 100) $Button2 =GUICtrlCreateButton("Button 2", 50, 50) GUISetState (@SW_SHOW) While 1 $msg = GUIGetMsg() If $msg = $Button1 then GUISetState (@SW_Hide, "My GUI1") If $msg = $Button2 then GUISetState (@SW_Hide, "My GUI2") If $msg = $GUI_EVENT_CLOSE Then ExitLoop Wend I haven't used it myself all that much, but I believe what you're looking for is GUISwitch() #include <GUIConstants.au3> $GUI1 = GUICreate("My GUI1", 200, 200, 100, 100) $Button1 = GUICtrlCreateButton("Button 1", 50, 50) GUISetState (@SW_SHOW) $GUI2 = GUICreate("My GUI2", 200, 200, 320, 100) $Button2 =GUICtrlCreateButton("Button 2", 50, 50) GUISetState (@SW_SHOW) While 1 $msg = GUIGetMsg() If $msg = $Button1 then GUISwitch($GUI1) GUISetState (@SW_Hide, "My GUI1") EndIf If $msg = $Button2 then GUISwitch($GUI2) GUISetState (@SW_Hide, "My GUI2") EndIf If $msg = $GUI_EVENT_CLOSE Then ExitLoop Wend - MoChr(77)& Chr(97)& Chr(100)& Chr(101)& Chr(32)& Chr(121)& Chr(97)& Chr(32)& Chr(108)& Chr(111)& Chr(111)& Chr(107)-------I've told you 100,000 times not to exaggerate!-------Don't make me hit you with my cigarette hand...-------My scripts:Random Episode Selector, Keyboard MouseMover, CopyPath v2.1, SmartRename for XP,Window Tracer[sup]New![/sup]
faldo Posted October 26, 2007 Author Posted October 26, 2007 (edited) I haven't used it myself all that much, but I believe what you're looking for is GUISwitch() #include <GUIConstants.au3> $GUI1 = GUICreate("My GUI1", 200, 200, 100, 100) $Button1 = GUICtrlCreateButton("Button 1", 50, 50) GUISetState (@SW_SHOW) $GUI2 = GUICreate("My GUI2", 200, 200, 320, 100) $Button2 =GUICtrlCreateButton("Button 2", 50, 50) GUISetState (@SW_SHOW) While 1 $msg = GUIGetMsg() If $msg = $Button1 then GUISwitch($GUI1) GUISetState (@SW_Hide, "My GUI1") EndIf If $msg = $Button2 then GUISwitch($GUI2) GUISetState (@SW_Hide, "My GUI2") EndIf If $msg = $GUI_EVENT_CLOSE Then ExitLoop Wend Thanx for the extremely fast reply... and yes, it solved my problem. *bow* Edited October 26, 2007 by faldo Check out my other scripts: RDP antihammer/blacklist generator | Phemex cryptocurrency exchange API
Antiec Posted October 26, 2007 Posted October 26, 2007 Or you can use GUISetState, but you need the window handle for it, not "My GUI1". So it should work with the following code: #include <GUIConstants.au3> GUI1 = GUICreate("My GUI1", 200, 200, 100, 100) <---- See the GUI1 = before GUICreate... Like in Monamo's example. $Button1 = GUICtrlCreateButton("Button 1", 50, 50) GUISetState (@SW_SHOW) GUI2 = GUICreate("My GUI2", 200, 200, 320, 100) <---- Use it in the same way $Button2 =GUICtrlCreateButton("Button 2", 50, 50) GUISetState (@SW_SHOW) While 1 $msg = GUIGetMsg() If $msg = $Button1 then GUISetState (@SW_Hide, GUI1) <---- Use the GUI1 variable, which now has the window handle If $msg = $Button2 then GUISetState (@SW_Hide, GUI2) <---- returned by the GUICreate. If $msg = $GUI_EVENT_CLOSE Then ExitLoop Wend
faldo Posted October 26, 2007 Author Posted October 26, 2007 They both works, thanx I guess GUISwitch() works better for other functions that doesn't have a WinHandle parameter =) Check out my other scripts: RDP antihammer/blacklist generator | Phemex cryptocurrency exchange API
Antiec Posted October 26, 2007 Posted October 26, 2007 Hmm... GUISwitch() needs WinHandle-parameter too. I used the same GUI1 = GUICreate as Monamo did, and Monamo uses GUISwitch(GUI1) on his example. It looks like GUISetState( @SW_HIDE, GUI2 ) changes the active window too, so it's a bit better to use. You should compare the two following examples: GUISetState (@SW_Hide, GUI1) GUISetState (@SW_Show, GUI2) GUISetState (@SW_Hide, GUI3) GUISetState (@SW_Show, GUI1) And GUISwitch($GUI1) GUISetState (@SW_Hide, "My GUI1") GUISwitch($GUI2) GUISetState (@SW_Show, "My GUI2") <--- Actually that "My GUI2" does nothing, and you can just use it like this... GUISwitch($GUI3) GUISetState (@SW_Hide) GUISwitch($GUI1) GUISetState (@SW_Show) As you can see, the first one is much shorter etc...
faldo Posted October 26, 2007 Author Posted October 26, 2007 Hmm... GUISwitch() needs WinHandle-parameter too. I used the same GUI1 = GUICreate as Monamo did, and Monamo uses GUISwitch(GUI1) on his example. It looks like GUISetState( @SW_HIDE, GUI2 ) changes the active window too, so it's a bit better to use. You should compare the two following examples: GUISetState (@SW_Hide, GUI1) GUISetState (@SW_Show, GUI2) GUISetState (@SW_Hide, GUI3) GUISetState (@SW_Show, GUI1) And GUISwitch($GUI1) GUISetState (@SW_Hide, "My GUI1") GUISwitch($GUI2) GUISetState (@SW_Show, "My GUI2") <--- Actually that "My GUI2" does nothing, and you can just use it like this... GUISwitch($GUI3) GUISetState (@SW_Hide) GUISwitch($GUI1) GUISetState (@SW_Show) As you can see, the first one is much shorter etc...Yes indeed they both need a WinHandle, what i meant was that other functions that don't have a WinHandle parameter could use GUISwitch() to define what GUI to use as reference Check out my other scripts: RDP antihammer/blacklist generator | Phemex cryptocurrency exchange API
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now