Пользовательские события WxWidgets - PullRequest
3 голосов
/ 25 апреля 2010

Я пытаюсь использовать пользовательское событие в моем WxWidgets C ++ приложении, как описано здесь .

В конструкторе моего wxApp:

Connect(wxID_ANY, wxCommandEventHandler(APP::OnMyEvent));

Тогда функция, которая должна перехватить событие:

void APP::OnMyEvent(wxCommandEvent& event)
{
    exit(0); //testing
}

Наконец, чтобы проверить это:

wxCommandEvent MyEvent(wxEVT_COMMAND_BUTTON_CLICKED); 
wxPostEvent(this, MyEvent);

Я запускаю вещь ... но похоже, что событие не опубликовано или не перехвачено.

Кто-то понимает это поведение?

1 Ответ

2 голосов
/ 25 апреля 2010

Вы, похоже, используете следующую перегрузку Connect :

void Connect(wxEventType eventType, wxObjectEventFunction function, 
    wxObject* userData = NULL, wxEvtHandler* eventSink = NULL)

Если это так, то если событие типа wxID_ANY произойдет (никогда?), То будет вызвана подключенная функция.

Возможно, вам нужно:

Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(APP::OnMyEvent));
...