2010-10-27 6 views
1

Je semble avoir suivi this example (found under "Defining Your Own Event Class"), et mon code compile et s'exécute sans erreur, mais je n'attrape pas l'événement n'importe où.wxWidgets 2.9 événements personnalisés

Le code:

class MyCustomEvent : public wxEvent 
{ 
//... stuff here 
}; 
wxDEFINE_EVENT(MY_CUSTOM_EVENT_1,MyCustomEvent); 

et plus tard, je lie l'événement:

Bind(MY_CUSTOM_EVENT_1, &MyApp::OnProcessCustom, this); 

et plus tard, je jette un événement de ce type:

MyCustomEvent* eventCustom = new MyCustomEvent(MY_CUSTOM_EVENT_1); 
eventCustom->SetEventObject(this); 
this->QueueEvent(eventCustom); //this is MyApp 

Malheureusement, après l'événement est lancé, il n'est jamais intercepté par OnProcessCustom.

Des idées?

Remarque: Similaire, mais pas identique à this question.

Répondre

1

Votre code semble correct si le problème est probablement dans la partie que vous ne montrez pas. Notez simplement que vous n'avez pas besoin de passer this comme dernier argument à Bind() si vous l'appelez à partir d'une méthode MyApp.

Je vous conseille également de regarder l'exemple d'événement, il a un code de travail définissant un événement personnalisé (bien qu'utilisant wxCommandEvent au lieu d'une classe personnalisée, mais vous pouvez facilement le modifier pour utiliser votre classe).

+0

En effet l'erreur doit être dans le code environnant. D'une manière ou d'une autre, j'ai pu obtenir un exemple plus compliqué avec un cours d'événements basé sur des modèles, mais cela reste buggé. Malheureusement, pas le temps de vraiment comprendre le problème. – JnBrymn

Questions connexes