IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxWidgets Discussion :

wxAuiNotebook: évènement fermeture onglet.


Sujet :

wxWidgets

  1. #1
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut wxAuiNotebook: évènement fermeture onglet.
    Bonjour,
    Comment peut-on récupérer l'évènement de fermeture d'un onglet.
    Dans ma classe CMonOnglet (:public wxPanel), j'ai rajouté la gestion de l'évènement EVT_CLOSE. Je ne passe jamais par ma fonction. J'ai rajouté un message dans mon destructeur, et je vois bien que celui-ci est appelé lorsque je ferme l'onglet.
    Mon problème est que je voudrais rajouter une boite de dialogue type: 'voulez-vous fermer l'onglet' et je ne sais comment faire. Dans le destructeur, il est trop tard et je n'ai pas l'évènement close. Quid?
    Merci.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    J'ai essayé avec l'évènement EVT_WINDOW_DESTROY: pas mieux!

  3. #3
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Dans ma classe CMonOnglet (:public wxPanel), j'ai rajouté la gestion de l'évènement EVT_CLOSE. Je ne passe jamais par ma fonction.
    C'est de ce problème qu'il faut trouver la solution, car cet évenement est justement là pour ça. Peux-tu poster ton code (connect(), handler, fonction)?

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut Hosanna
    En regardant l'implémentation de wxAuiNotebookEvent (auibook.cpp), je suis tombé sur le bout de code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                wxWindow* close_wnd = tabs->GetWindowFromIdx(selection);
     
                // ask owner if it's ok to close the tab
                wxAuiNotebookEvent e(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, m_windowId);
                const int idx = m_tabs.GetIdxFromWindow(close_wnd);
                e.SetSelection(idx);
                e.SetOldSelection(evt.GetSelection());
                e.SetEventObject(this);
                GetEventHandler()->ProcessEvent(e);
                if (!e.IsAllowed())
                    return;
    Donc, j'ai mis un handler sur wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, et là bingo: j'intercepte mon message comme je le voulais.

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    En creusant un peu plus, j'ai trouvé dans l'example Aui de wxWidget, l'utilisation des macros EVT_AUINOTEBOOK_PAGE_CLOSE et EVT_AUINOTEBOOK_PAGE_CLOSED

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bouton Fermeture Onglet
    Par jchenoy dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 24/04/2007, 12h09
  2. Pb d'événement "fermeture"
    Par oops! dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 14/08/2006, 23h47
  3. Pb d'événement "fermeture"
    Par oops! dans le forum Flash
    Réponses: 6
    Dernier message: 14/08/2006, 16h13
  4. Détection de l'évènement fermeture d'une fenêtre
    Par noa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/05/2006, 14h57
  5. récupérer l'événement "fermeture par la croix" de
    Par hamurielle dans le forum Windows Forms
    Réponses: 4
    Dernier message: 08/04/2005, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo