wxWidgets: Wie Funktionsaufrufe mit Connect(...)?



  • Hallo,

    ich möchte nach einem Klick auf einen Button eine Funktion aufrufen, allerdings nicht statisch, sondern die Instanz auf die Klasse. Allerdings scheint der Event-Handler nur statische Objekte ansprechen zu können oder geht es auch anders?

    Hier mal mein Code:

    Klasse* klasse = new Klasse();
        Connect(idKlasseCreate, wxEVT_COMMAND_BUTTON_CLICKED, sunsystem->doSomething());
    

    Allerdings sagt der Compiler: "Invalid use of void expression". Aber es ist eine void-Funktion und Connect verlangt doch keinen Rückgabewert,oder doch?

    Oder muß das nach einem bestimmten wxObjectEvent... gecastet werden?

    Vielen Dank schon mal für eure Hilfe.

    Gruß,

    Tobias



  • Falls du noch keinen Blick in die Doku geworfen haben solltest, hier :

    http://docs.wxwidgets.org/trunk/classwx_evt_handler.html

    Connect ist immer eine Funktion des wxEvtHandler, der die dahinterliegende Funktionalität der wxEventLoop kapselt.

    Sir_Tobias schrieb:

    Connect(idKlasseCreate, wxEVT_COMMAND_BUTTON_CLICKED, sunsystem->doSomething());
    

    Stellt sich die spannende Frage was in der Doku mit "wxObjectEventFunction" gemeint ist.

    Ein Tip noch :

    Funktionsaufruf != Funktionspointer



  • So wärs richtig:

    Connect (wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (klasse::dosomething));

    Ansonsten die Seite nurf beachten.
    MfG
    Yoschi


Anmelden zum Antworten