Wie bekomme ich den Handle in den Thread?



  • Hallo,

    ich übergebe einen CWnd-Handle in einen Thread.
    Das sieht so aus:

    test = AfxBeginThread(
    		KeyListener,
    		cwnd,
    		THREAD_PRIORITY_NORMAL,
    		0,
    		0,
    		NULL);
    

    cwnd ist der CWnd-Handle. Im Thread kommt der Wert aber als LPVOID an:

    static UINT KeyListener(LPVOID Pparam)
    

    Und ich bekomme nur einen Zeiger auf den Handle, mit

    CWnd *cwnd = (CWnd*) Pparam;
    

    Ich brauche aber den Handle selbst, um dann bestimmte Memberfunktionen aufzurufen, wie kriege ich den?
    Danke für evtl. Antworten und für das tolerieren meiner Unwissenheit! 😉

    Christian



  • CWnd::getSafeHwnd()

    Die Doku wirkt manchmal wunder... 🙄

    Mfg
    Beowulf



  • Ich habe doch den Handle schon.
    Ich übergebe ihn ja in den Thread, aber habe dort nur den Zeiger darauf...

    Christian



  • Memberfunktionenaufruf?

    Was spricht gegen ein "pwnd->Memberfunktion"?



  • Beowulf schrieb:

    Memberfunktionenaufruf?

    Was spricht gegen ein "pwnd->Memberfunktion"?

    Hm, nichts erstmal, von daher danke. 🙂 ...außer dass es jetzt:

    cannot access protected member declared in class 'CWnd'

    sagt.... 😕



  • kox schrieb:

    Beowulf schrieb:

    Memberfunktionenaufruf?

    Was spricht gegen ein "pwnd->Memberfunktion"?

    Hm, nichts erstmal, von daher danke. 🙂 ...außer dass es jetzt:

    cannot access protected member declared in class 'CWnd'

    sagt.... 😕

    Ja.. das kommt vor.
    Allerdings denke ich das ich die Lösung schon genannt habe.
    Siehe auch klickmich!


Anmelden zum Antworten