This zeiger speichern um in LRESULT CALLBACK zu benutzen
-
Hallo,
wie speichere ich den this Zeiger der aktuellen instanz? ich hab schon das probiert:
class windowsampe { private: int meinevariable; public: [...] static LRESULT CALLBACK WndProc (HWND hWnd, UINT message,WPARAM wParam, LPARAM lParam); [...] windowsampe(int a) { meinevariable = a; } }; LRESULT CALLBACK windowsample::WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: return 0; case WM_CLOSE: PostQuitMessage (0); return 0; case WM_DESTROY: return 0; case WM_KEYDOWN: switch (wParam) { case VK_ESCAPE: PostQuitMessage(0); return 0; case VK_ADD; meinevariable += 5; return 0; } return 0; default: return DefWindowProc (hWnd, message, wParam, lParam); } }Ziel ist es die Variable zu erhöhen, nur leider kennt ja diese static funktion den this zeiger nicht. ich hab gelesen das soll mit:
SetWindowLongPtr(hWnd, GWL_USERDATA, this)
gehen aber ich weiß nich wie, könntet ihr mir das mal erklären wie ich da vorgehen muss um den this zeiger zu speichern um somit wieder aufrufen zu können in der funktion LRESULT?
Ich hoffe Ihr könnt mir helfen
Gruß
Popp
-
Das kann dir helfen:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-195771-and-highlight-is-.html
-
Das ist mir wieder zu umfangreich, könnt ihr mir nicht einfach das ganze hier an meinem beispiel erklären?
ich wäre euch dafür sehr dankbar
-
Dazu gibt es bereits etwas in der FAQ: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39356.html .
Wenn Dir das (auch) zu umfangreich bist, bzw. 'keine Lust' hast, Dir das notwendige zu erarbeiten, bist Du hier wohl falsch.