-
wxFrame et bouton
Bonjour,
Je développe une petite appli et j'aimerai que lorsque j'appui qur un bouton, une nouvelle frame s'ouvre et tant que cette frame est ouverte le bouton est inactif. Biensur il doit le redevenir lorsque la frame a été fermé.
Si quelqu'un à une idée de comment faire?
Merci
-
Bonjour,
L'idée qui me vient (rapidement) à l'esprit est tout simplement de passer une référence (ou un pointeur) sur ton bouton au constructeur de ta classe wxFrame que tu vas afficher, puis d'appeler la méthode Disable() de ce bouton dans le constructeur, et Enable(), dans le destructeur de ta frame...
-
Oauis mais c'est un peu bourrin dans la mesure ou c'est pas évolutif : si demain tu as 5 boutons, il faudra passer les 5 références à ta nouvelle wxFrame !
Je préconiserais plutot :
Tu as deux méthodes dans ta fenetre parent (celle depuis laquelle tu crées la nouvelle frame) :
- EnableElements
- DisableElements.
Ces deux méthodes activent / desactivent tous les objets, boutons, que tu veux lorsque de l'ouverture, fermeture de ta nouvelle fenetre. Ainsi tu peux mettre ton bouton dedans pour le moment, et en rajouter d'autres dans le futur.
Lorsque tu crées ta nouvelle Frame, et que tu l'affiches, tu appelles la méthode de ta classe DisableElements().
Puis, dans ta nouvelle frame, tu appelles dans son destructeur la méthode EnableElements() directement sur la fenetre parent. Imaginons que cette fenetre parent soit une wxFrame surchargée qui s'appelle MyFrameToto, alors ceci devrait fonctionner :
destructeur de la nouvelle Frame :
((MyFrameToto*)GetParent())->EnableElements().
Et là tes boutons redeviennent actifs.
Bon courage.
Alex.