2010-10-27 4 views
1

Я, кажется, следовал this example (found under "Defining Your Own Event Class"), и мой код компилируется и запускается без ошибок, но я нигде не поймал событие.wxWidgets 2.9 пользовательские события

Код:

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

и позже я связать событие:

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

, а затем я бросить событие этого типа:

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

К сожалению, после этого события брошен, он никогда не попадает в OnProcessCustom.

Любые идеи?

Примечание: похоже, но не такое же, как this question.

ответ

1

Ваш код выглядит правильно, поэтому проблема, вероятно, в той части, которую вы не показываете. Просто обратите внимание, что не нужно передавать this в качестве последнего аргумента в Bind(), если вы вызываете его из метода MyApp.

Я бы также посоветовал просмотреть образец события, у него есть рабочий код, определяющий настраиваемое событие (хотя и с использованием wxCommandEvent вместо пользовательского класса, но вы можете легко изменить его, чтобы вместо этого использовать свой класс).

+0

Действительно, ошибка должна быть в окружающем коде. Как-то мне удалось получить более сложный пример с шаблоном работающего класса событий, но это все еще плохо. К сожалению, нет времени, чтобы действительно понять проблему. – JnBrymn

Смежные вопросы