Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 9


|
Conversation (Résolue) : Cacher le frame à partie du button Close. |
ajm (Membre)
Inscrit le : 16-03-2011
Messages: 82
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour,
J'utilise wxSmith du Code blocks pour créer une application 'HideFrame' et j'ai ajouter Hide(); comme ceci:
Code wxWidgets: HideFrameFrame::~HideFrameFrame() { //(*Destroy(HideFrameFrame) //*) Hide(); //ou Show(false); }
Après Build and Run, l’application se ferme quand on clic sur le bouton close au lieu de se cacher. Où est donc le problème?
Dernière modification par ajm (06-02-2012 12:29:59)
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1387
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Salut.
Le problème vient du fait que tu as mis le Hide dans le destructeur de la fenêtre. Donc, au moment où tu caches ta fenêtre, le processus de destruction est déjà engagé.
Pour cacher la fenêtre au lieu de la détruire quand on clique sur le bouton de fermeture, il faut intercepter l'événement "OnClose". Il faut également permettre à l'application de se fermer si c'est le système qui en demande la fermeture.
Code wxWidgets:BEGIN_EVENT_TABLE(HideFrameFrame, wxFrame) ........ EVT_CLOSE(HideFrameFrame::OnClose) END_EVENT_TABLE() void HideFrameFrame::OnClose(wxCloseEvent &event) { if (!event.CanVeto()) Destroy(); else Hide(); }
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
ajm (Membre)
Inscrit le : 16-03-2011
Messages: 82
Snippets: 0
Tutoriels: 0
Hors ligne |
Salut,
Ça marche, merci!
|
|
|