?
Hi,
ich glaub du hast das mit dem Subclasse bzw Fensterklassen noch nicht richtig verstanden.
Jedes Fenster wird ja aus einer vorher registrierte Klasse erstellen, die eine Callback Funktion hat die immer dann aufgerufen wird wenn Windows eine Message für das Window hat.
Du willste jetzt die schon vorhandene Funktion(von dem Editcontroll) durch deine eigene ersetzten, die bestimmte Messages (WM_RBUTTONDOWN, WM_CONTEXTMENU und WM_COMMAND) abfängt.
Jetzt musst du aber die Message die du nicht bearbeitest wieder weiter an die orginal Funktion weiter geben sonst geht nichts mehr, wie das bei dir der Fall ist ;).
Deswegen speicherste ja auch bei SetWindowLong() den return Wert (is die Adresse von der orginal Funktion :)).
Das schreibste einfach am Ende deiner Funktion:
return CallWindowProc(wpOrigEditProc, hwnd, uMsg, wParam, lParam);
(ist dann für alle Messages die du nicht bearbeitest).
Und für die die du bearbeitest schauste in die MSDN was du returnen solltest
MSDN schrieb:
WM_RBUTTONDOWN Notification
Return Value
If an application processes this message, it should return zero.
So ich hoff mal das, dass einigermaßen verständlich ist(das mit dem erklären liegt mir ned so wirklich, leider ) und vorallem richtig :), fallst ned gebt bescheid ;).
Dann mal schönen Tag noch
Pingu