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

Résolu
cs_Sunsawe Messages postés 64 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 5 avril 2007 - 29 juil. 2005 à 12:37
fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 - 30 juil. 2005 à 15:41
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

fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 1
29 juil. 2005 à 15:05
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
3
cs_Sunsawe Messages postés 64 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 5 avril 2007
29 juil. 2005 à 19:23
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?
0
cs_Sunsawe Messages postés 64 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 5 avril 2007
29 juil. 2005 à 19:56
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?
0
fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 1
30 juil. 2005 à 15:41
Bonjour,



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



A+



FredCL
0