Autor Beitrag
Bayo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Do 20.02.03 13:21 
Hi zusammen...

Kann mir evtl. jemand sagen, wofür die Funktion " CallWindowProc" genau ist? Sie wird z. B. folgendermassen aufgerufen:

ausblenden 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