WndProc CALLBACK aus einer Klasse heraus an wndproc weitergeben



  • kurze Frage: gibt es irgendeine Möglichkeit, eine Callbackfunktion, die man in einer eigenen Klasse definiert hat an WndClass.lpfnWndProc bei der Initialisierung weiterzugeben? beim compilen akzeptiert der das bei mir nich, und will statt einem

    (__stdcall KLASSE::*)(blabla) unbedingt ein (__stdcall *)(blabla)

    also ne globale funktion, is soweit ich das überblicken kann die einzige Möglichkeit ne WndProc Funktion zu schreiben.

    WndClass.lpfnWndProc = MsgProc;

    Der Grund dafür ist, daß ich mir eine eigene Window-Klasse geschrieben hab und über in der MsgProc gerne Zugriff auf die internen Variablen jeder window-instanz hätte. schonma dnke für jede Hilfe!



  • FAQ you! 🙂



  • Hi,

    du musst die WindowProcedure in deiner Klasse als static definieren.

    class Tep
    {
    public:
    
    	static LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
    };
    

    MFG, '][' !



  • WebFritzi schrieb:

    FAQ you! 🙂

    danke für den hinweis 😉 sind ja nette umgangsformen hier hehe aber

    das FAQ hat mir nich geholfen, weil ich nämlich 'n bischen anderes Problem hab:

    wenn ich die als static deklariere, dann bekomme ich keinen Zugriff auf die membervariablen der Funktion Fehler:

    error C2597 Ungueltige Referenz auf ein Datenelement 'WINDOW::variable' in einer statischen Member-Funktion

    und genau das is ja der Grund, warum ich die als member funktion haben will, nämlich damit ich darauf zugreifen kann.



  • Thunk-Klasse -> SUCHEN 🙄 🤡



  • Hi,

    um zugriff auf die membervariablen zu erlangen, musst du der Funktion den this->pointer der Klasse als Parameter übergeben. MFG, '][' !


Log in to reply