Page 1 sur 1

[..] Gérer deux boutons dans une fenêtre

Posté : jeu. 14 août 2014 15:35
par Azir
Salut ! Je suis un débutant d'Autoit et j'apprends l'utilisation des GUI.
Je pratique un peu ce que j'ai comme connaissance dans le domaine des GUI.
J'essaye actuellement de mettre une Check Box et un simple bouton sur la même fenêtre. Et lorsque on clique sur ce bouton, la 2ème fenêtre apparait et que la 1ère disparait.
Pour que vous compreniez, voici le code que j'ai écris :

Code : Tout sélectionner

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

;-----------------GUI_1 CREATE + CHECK_BOX AND BUTTONS ----------------------------------
Dim $GUI_1 = GUICreate("GUI_1", 200, 200, 300, 200)
Dim $But_1 = GUICtrlCreateButton("AF_GUI_2", 60, 135, 75, 25)
Dim $Check_1 = GUICtrlCreateCheckBox("CHECK_1", 60, 135, 75, 25)

;-----------------GUI_2 CREATE + RADIO_BOX AND BUTTONS ----------------------------------
Dim $GUI_2 = GUICreate("GUI_2", 200, 200, 300, 200)
Dim $But_2 = GUICtrlCreateButton("AF_GUI_1", 60, 135, 75, 25)
Dim $Radio_2 = GUICtrlCreateRadio("RADIO_2", 60, 135, 75, 25)

;-----------------AFFICHAGE DES GUI CREES------------------------------------------------
GUISetState(@SW_SHOW, $GUI_1)

;----------------- POSEMENT DES CONDITIONS ET DE LA BOUCLE ----------------------
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        case $GUI_EVENT_CLOSE
            Exit
        case $But_1
            GUISetState(@SW_SHOW, $GUI_2)
            Fermer($GUI_1)
        case $But_2
            GUISetState(@SW_SHOW, $GUI_1)
            Fermer($GUI_2)
    EndSwitch
WEnd
Func Fermer($prm1)
    Return Exit $prm1
EndFunc
Vous aurez du remarquer le fait que j'ai crée une function qui permet de fermer la première GUI ou la deuxième lorsqu'on clique sur les boutons, mais je crois que l'expression est fausse ( d'après ScITE :) )
Merci de toute éventuelles réponses !

Re: [..] Gérer deux boutons dans une fenêtre

Posté : jeu. 14 août 2014 16:36
par jguinch
Exit sert à fermer le script.
Pour fermer une GUI, il y a plusieurs possibilités : par exemple, utiliser GUISetState() pour la masquer (en vue de l'afficher plus tard) ou GUIDelete() pour la supprimer complètement (il faudra alors la reconstruire).

Re: [..] Gérer deux boutons dans une fenêtre

Posté : mar. 09 juin 2015 17:07
par caropost
Bonjour,

Je me permet de remonter ce sujet car j'aurais nommé le mien à peu près pareil mais si vous préférez que je créé un autre post, je le ferai :)

Dans mon script, j'ouvre une fenêtre pour poser une question et je créer 2 boutons pour y répondre (oui ou non). Le problème est que parfois je ne peux pas appuyer sur le bouton que je souhaite et au bout de quelques secondes (ça change à chaque test), je peux cliquer mais c'est assez embêtant et énervant :?
Voici ce que j'ai écris :
► Afficher le texte
Sauriez-vous m'aider à résoudre mon problème ? :)

Re: [..] Gérer deux boutons dans une fenêtre

Posté : mar. 09 juin 2015 17:45
par orax
Pour moi, ce petit bout de code est fonctionnel. Il ne reproduit pas le problème évoqué.
(Avec ça en plus)

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$fr_yes='oui'
$fr_no='non'
Il n'y aurait pas un traitement (une boucle par exemple) ailleurs dans le code ? Entre GUISetState(@SW_SHOW) et la boucle While 1 par exemple.

Re: [..] Gérer deux boutons dans une fenêtre

Posté : mer. 10 juin 2015 11:52
par caropost
Je n'ai pas ajouté ici le texte des variables $fr_yes et $fr_no mais c'est bien présent dans mon script :)

Pour ce bout de code, effectivement c'est dans un if mais il n'y a rien entre le GUISetState et le While 1...
► Afficher le texte

Re: [..] Gérer deux boutons dans une fenêtre

Posté : mer. 10 juin 2015 15:55
par orax
Je viens de comprendre, le label est trop grand. On ne peut pas cliquer sur la partie haute des boutons.
Pour visualiser la taille du label :

Code : Tout sélectionner

GUICtrlCreateLabel("Utilisez-vous un vase ?", 25, 50, 300, 40)
GUICtrlSetBkColor(-1, 0xFF0000)
On peut supprimer la taille du label, il s'adaptera automatiquement.

Code : Tout sélectionner

GUICtrlCreateLabel("Utilisez-vous un vase ?", 25, 50)

Re: [..] Gérer deux boutons dans une fenêtre

Posté : jeu. 11 juin 2015 11:20
par caropost
Effectivement, je ne me doutait pas qu'un label trop grand empêcherait un bouton de fonctionner correctement...

Merci beaucoup ! :) Ca marche beaucoup mieux maintenant ^^