Hi zusammen...
Kann mir evtl. jemand sagen, wofür die Funktion " CallWindowProc" genau ist? Sie wird z. B. folgendermassen aufgerufen:
Quelltext
1:
| CallWindowProc(DefWndProc, Handle, WM_SETFOCUS, 0, 0); |
"DefWndProc" wird in der Methode "CreateWnd" von "TWinControl" gesetzt:
FDefWndProc := WindowClass.lpfnWndProc; und ist, wie ich das verstehe, ein Zeiger auf die Standard-Message-Behandlung von Windows.
Wenn ich das richtig interpretiere, wird durch den oben stehende Aufruf das Windows-Handling für "WM_SETFOCUS" des mit "Handle" angegebene Steuerelements ausgeführt, wobei die Nachricht aber nicht an das Delphi-Programm weitergegeben wird? Die Procedure "WndProc" von "TControl" wird somit umgangen?
Diese Aussage ist mehr oder weniger Spekulation. In der Delphi-Hilfe Unter "DefWndProc" wird noch etwas von "subclassing" in diesem Zusammenhang erwähnt, weiss evtl. jemand, was damit gemeint ist?
Beim Aufruf von "CallWindowProc" wird 0 für die zwei letzten Parameter (WPARAM, LPARAM) übergeben. Beide dieser Parameter werden oft von API-Funktionen verlangt, wofür stehen sie?
Ich freue mich über jede Antwort...
Grüsse Dominic