Subclassing Problem
-
Hallo,
Ich hab wieder ein komisches Problem. Ich habe eine EditBox "gesubclassed"
mit folgendem Befehl:PrevWndProcEdit = SetWindowLong(hwnd, GWL_WNDPROC, (long)EditWndProc); ... //Am Ende von EditWndProc gebe ich den Rest wieder an die alte WNDPROC zurück: return CallWindowProc ((WNDPROC) PrevWndProcEdit, hwnd, message, wParam, lParam);
Das funktioniert auch einbandfrei.
Doch wenn ich es jetzt in eine Klasse packe kommt immer folgender Fehler:
error C2440: 'type cast' : '' kann nicht in 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' konvertiert werden
Der konvertierte Ausdruck ist nicht gueltigEs bezieht sich auf
return CallWindowProc ((WNDPROC) PrevWndProcEdit, hwnd, message, wParam, lParam);
Meine Klasse sind so aus:
#include <windows.h> class Controls { public: Controls(HWND hParent, char * typ,HMENU id, RECT myrect); virtual ~Controls(); static LRESULT CALLBACK EditWndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); protected: HWND hwnd; long PrevWndProcEdit; };
Hat irgendeiner eine Idee, was falsch sein könnte?
Wie gesagt, ohne Klasse läuft alles einbandfrei
Also, danke!
Stefan
-
Das dürfte daran liegen, das PrevWndProcEdit nicht static ist.
-
Hey, thx für die Antwort...
Leider funzt das auch nicht:error LNK2001: Nichtaufgeloestes externes Symbol "public: static long Win32Control::PrevWndProcEdit2" (?PrevWndProcEdit2@Win32Control@@2JA)
Debug/Win32.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
-
http://www.c-plusplus.net/forum/viewtopic.php?t=62555&highlight=static
vorletzte antwort
-
cool
Hatte ich net gefunden mit der Suche...Dank Dir!
-
Was bringt es eine Klasse zu programmieren in der alles static ist? Dafür wäre ein namespace angebrachter.
-
angebrachter wäre eine Thunk-Klasse zu verwenden
:p -> SUCHE
-