Page 1 sur 1

[R] Quitter une Gui d'une autre Gui

Posté : sam. 03 déc. 2011 18:30
par locos974
Bonjour,

Je cherche comment faire pour quitter une GUI(2) qui a été ouverte par ma GUI(1) sans quitter la GUI(1) ?
Je suis sur que cela est très simple mais je n'est pas trouver..

J'ai essayer :

Code : Tout sélectionner

Exit _Gui2()
mais cela me rajoute la même GUI(2)...

Merci d'avance.

Re: [..] Quitter une Gui d'une autre Gui

Posté : sam. 03 déc. 2011 23:12
par Tlem
2 solutions :

- Soit vous voulez cacher la 2nd GUI pour l'utiliser ultérieurement et dans ce cas utilisez : GUISetState(@SW_HIDE, $HandleDeVotreGUI2)

- Soit vous voulez supprimer la 2nd GUI car elle ne sert plus à rien et dans ce cas c'est plutôt : GUIDelete($HandleDeVotreGUI2)

Re: [..] Quitter une Gui d'une autre Gui

Posté : dim. 04 déc. 2011 08:33
par mikell
Si la fermeture se fait par un bouton "exit" dans la gui pas de problème avec GUIDelete($gui_2)
Si c'est par la croix en haut à droite et $GUI_EVENT_CLOSE alors

Code : Tout sélectionner

While 1
$nMsg = GUIGetMsg([b]1[/b])   [color=#008000]; <= voir l'aide[/color]
Select
    Case $nMsg[0] = $GUI_EVENT_CLOSE
        If $nMsg[1] = $gui_2 Then    [color=#008000]; fenêtre fille[/color]
            GUIDelete($gui_2)       [color=#008000]; on ferme la fenêtre fille[/color]
        Else       [color=#008000]; fenêtre principale[/color]
            Exit    [color=#008000]; on ferme tout[/color]
        EndIf
EndSelect
Wend
Sujet déjà traité ici (entre autres)

Re: [..] Quitter une Gui d'une autre Gui

Posté : dim. 04 déc. 2011 13:10
par locos974
Voici mon code, mais je n'arrive toujours pas comment faire fermer la gui2 sans supprimer la Gui1...

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("test.", 361, 127, 406, 321)
$Button1 = GUICtrlCreateButton("test", 16, 24, 65, 25, $WS_GROUP)
$Button6 = GUICtrlCreateButton("Aide", 280, 8, 73, 49, $WS_GROUP)
$Button7 = GUICtrlCreateButton("Quitter", 280, 72, 73, 49, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1

    $nMsg = GUIGetMsg()
    Switch $nMsg

        Case $GUI_EVENT_CLOSE ;==> Bouton : X
            Exit

        Case $Button1 ;==> Bouton : gui2
            _Gui1()

        
        Case $Button6 ;==> Bouton : Aide
            

        Case $Button7 ;==> Bouton : Quitter
            Exit

    EndSwitch
WEnd

Func _Gui1() ;==> Début Gui1
$Form1 = GUICreate("teste.", 335, 186, 398, 202)
$Button11 = GUICtrlCreateButton("Quitter", 240, 64, 81, 49, $WS_GROUP)
$Button10 = GUICtrlCreateButton("Accueil", 240, 8, 81, 49, $WS_GROUP)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button10
            Exit
        Case $Button11
            GUIDELETE(_gui1())
;==> Début fonction





;==> Fin fonction

        EndSwitch
    WEnd
EndFunc   ;==> Fin Gui1
 

Re: [..] Quitter une Gui d'une autre Gui

Posté : dim. 04 déc. 2011 15:27
par mikell
Tlem a écrit :- Soit vous voulez supprimer la 2nd GUI car elle ne sert plus à rien et dans ce cas c'est plutôt : GUIDelete($HandleDeVotreGUI2)
l'aide a écrit :GUIDelete ( [winhandle] )
winhandle : Windows handle as returned by GUICreate
C'est pourtant clair non ?

Code : Tout sélectionner

$Form1 = GUICreate... etc

        Case $Button11
            GUIDELETE($Form1)
:roll:

Re: [..] Quitter une Gui d'une autre Gui

Posté : dim. 04 déc. 2011 16:15
par locos974
Exacte mais pourtant j'avais déjà fait mais peut être que je n'avais pas renomée les Form..

Merci beaucoup une fois de plus !