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 :

Limiter le nombre de clic sur un bouton


Sujet :

wxWidgets

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Limiter le nombre de clic sur un bouton
    Bonjour,

    J'ai créé un bouton qui lorsqu'on clic dessus ouvre une nouvelle fenêtre. Tant que cette fenêtre reste ouverte, je voudrait que le bouton soit bloqué, de manière à ce qu'on ne puisse ouvrir qu'une seule fenêtre de se type à la fois.


    Pour l'instant mon bouton fonctionne comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void MyFrame::OnClicBouton1(wxCommandEvent& WXUNUSED(event))
    {
        Fenetre_Lancement* LancementFrame = new Fenetre_Lancement("Lancer Série", wxPoint(60, 60), wxSize(400, 400));
        LancementFrame->Show();
        bouton1->Enable(FALSE);
    }


    Le problème c'est que je n'arrive pas à débloquer le bouton lorsque je ferme la fenêtre "Fenetre_Lancement"

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    En fait, au lieu de te compliquer la vie, pouquoi ne pas faire hériter Fenetre_Lancement de wxDialog et au lieu d'effectuer un Show tu effectues un ShowModal().

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    Et sinon si tu veux garder ton implémentation actuelle et donc te compliquer la vie (j'adore aussi !) tu crées, dans ta fenetre Fenetre_Lancement, une fonction qui obéit à l'évènement OnClose() :

    EVT_CLOSE ( Fenetre_Lancement::OnClose )

    Et dans cette fonction tu demandes à la fenêtre parent de rendre à nouveau actif ton bouton, un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void 
    Fenetre_Lancement::OnClose (wxCloseEvent& WXUNUSED(event) )
    {
    	// When closing this window, enable the button
    	wxWindow* loc_po_parent_window = GetParent() ;
    	if ( loc_po_parent_window )
    	{
                reinterpret_cast<MyFrame*>(loc_po_parent_window)->button1->Enable();
    	}
    }
    En imaginant que button1 soit un membre accessible de ta fenetre parent, sinon tu vois le genre (par des accesseurs...).

    A+

    Bye.

Discussions similaires

  1. comment savoir le nombre de clics sur le bouton submit
    Par zaki_1982 dans le forum Windows
    Réponses: 1
    Dernier message: 01/03/2012, 10h09
  2. nombre de clics sur un bouton (google analytics)
    Par romintor dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2011, 21h38
  3. Limiter le nombre de clic sur bouton en javascript
    Par hoangeric dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/07/2009, 13h33
  4. limitation du nombre d'enregistrement sur une jointure
    Par coredump dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/06/2005, 16h13
  5. Gérer les clics sur les boutons
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 08/02/2004, 15h34

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