Sto cercando di utilizzare un evento personalizzato nella mia applicazione C ++ WxWidgets , come descritto qui .
Nel costruttore della mia wxApp:
Connect(wxID_ANY, wxCommandEventHandler(APP::OnMyEvent));
Quindi la funzione che dovrebbe catturare l’evento:
void APP::OnMyEvent(wxCommandEvent& event) { exit(0); //testing }
Infine, per testarlo:
wxCommandEvent MyEvent(wxEVT_COMMAND_BUTTON_CLICKED); wxPostEvent(this, MyEvent);
Lancio la cosa … ma sembra che l’evento non sia pubblicato o non catturato.
Qualcuno capisce questo comportamento?
Sembra che tu stia utilizzando il seguente overload di Connect :
void Connect(wxEventType eventType, wxObjectEventFunction function, wxObject* userData = NULL, wxEvtHandler* eventSink = NULL)
Se è così, allora dovrebbe accadere un evento di tipo wxID_ANY
(mai?), Quindi verrà chiamata la funzione connessa.
Forse hai bisogno di:
Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(APP::OnMyEvent));