[wxWidgets]Comment récupérer un évenements?

[Résolu]
Signaler
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007
-
Messages postés
547
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
7 octobre 2007
-
Voilà j'ai une classe qui dérive de wxBoxSizer.

Cette comporte duex attributs dont l'un est un wxTextCtrl. Ce dernier peut générer un évenement de type EVT_TEXT.



Comment puis je le gérer depuis ma classe?



j'ai essayé avec un : DECLARE_EVENT_TABLE() dans le .h

et



BEGIN_EVENT_TABLE(MonSizer, wxTextCtrl | wxBoxSizer)

EVT_TEXT(ID_CHAMP_TEXT, MonSizer::setChang2)

END_EVENT_TABLE()



dans le cpp.

J'obtiens dans un cas:



error C2248: 'wxTextCtrl::sm_eventTable' : cannot access protected member declared in class 'wxTextCtrl'



et dans l'autre:



error C2039: 'sm_eventTable' : is not a member of 'wxBoxSizer'



Merci de votre aide.

4 réponses

Messages postés
547
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
7 octobre 2007
1
Bonjour,



Non tu dois gérer cet évenement dans le wxFrame ou wxDialog dans lequel
ton wxTextCtrl est intégré, car un wxSizer n'est pas un wxEvtHandler
donc ne peut pas gérer d'événement.



Donc :



BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_TEXT(ID_CHAMP_TEXT, MyFrame::setChang2)
END_EVENT_TABLE()



devrais marcher



Cordialement



FredCL
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

Salut,

SI tu as raison alors ça change légèrement ma problématique.

Parce que si je dois récupérer au niveau de la wxFrame l'évènement
produit par les objets de ma classe, j'ai un pb de nombre. Il faut que
je déclare 20 lignes dans la table d'évènement?

Enfin je crois pas mais comment je dois faire justement?

il doit y avoir un moyen de de lier tous les objets de la classe à la
même fonction. Et que celle ci fasse appelle à une méthode de l'objet
de cette classe qui crée l'évennement.

Surtout sans avoir à entrer 20 lignes dans la table d'évennement non?
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

voilà en suivant ce que tu indiques, j'arrive à récupérer l'évennements.

Mais comment récupérer lequel des 20 objets déclenche l'évennement?
Messages postés
547
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
7 octobre 2007
1
Bonjour,



Je pense que wxEvent::GetId devrais résoudre ton problème.



A+



FredCL