wxWidgets 2.9 пользовательских событий - PullRequest
1 голос
/ 28 октября 2010

Я, похоже, следовал этому примеру (находится в разделе "Определение собственного класса событий") , и мой код компилируется и запускается без ошибок, но я нигде не перехватываю событие.

Код:

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.

Есть идеи?

Примечание: похоже, но не совпадает с на этот вопрос .

1 Ответ

1 голос
/ 28 октября 2010

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

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

...