So, ich hab das Problem gelöst. Ein wenig Information:
Der Punkt 0/0 ist immer der Clientbereich des Parent-Fensters. Ist es ein Panel, dann gibt es keine Probleme. Man kann das Handle des Parentfensters auslesen und das Childfenster-Handle relativ zu dem Nullpunkt auslesen. Wenn es das Hauptfenster ist, dann bezieht sich auch hier der Nullpunkt auf den Clientbereich. Allerdings ist somit das auslesen des Childfenster-Handles ein wenig problematischer. Hier muß man zuerst prüfen ob es sich um ein Hauptfenster handelt. Wenn ja, dann muß man die Titelzeile und den Bildschirmrand vorher abziehen (ev. auch das Menü). Wenn man das nicht macht, dann prüft ChildWindowFromPoint einfach zu hoch nach einem Child-Window und findet es nicht.
Ist alles ein wenig kompliziert, aber logisch. Wenn man also das Handle eines Childfensters über ChildWindowFromPoint auslesen will, dann muß man viele Ausnahmen beachten.
Ich hab es bis jetzt von "hand" gemacht, d.h. die Höhe der Titelzeile und des Randes vorher ermittelt. Dann hab ich auch von hand ermittelt ob es das Hauptfenster ist (ein Hauptfenster hat kein Parentfenster). So hab ich den Clientbereich des Hauptfensters ermittelt. Allerdings gilt das nicht für Dialogfenster. Bei denen ist der der Nullpunkt anscheinend der Nullpunkt des Dialogfensters und nicht des Clients. Wieder eine Ausnahme?
Kennst du eine Funktion die den Clientbereich des Hauptfensters anhand des Fensterhandles liefert? Sollte etwas in der Art von ClientRect von dem TControl sein, allerdings für API.
Kennst du auch eine Funktion mit der man einfach durch zuweisen des Handles rausfinden kann ob es das Hauptfenster ist? Ich habst über Parent-Fenster rausgefunden. Allerdings gefällt mit das nicht.