Fenster per Mausklick ermitteln
-
Ich möchte in meinem Dialog auf ein Fenster klicken und dadurch den CWnd* des entsprechenden Fensters erhalten. Ich weiss, das es eine simple Funktion dafür gibt, aber ich habs wieder vergessen

Hilft mir mal schnell jemand auf die Sprünge ?
-
WindowFromPoint?
-
Jaaaa super! Genau das wars

Oh man, das war ja zu simpel
-
Hab auch lang gebraucht, weil ich die ganze Zeit mit GetWindow.. gesucht hab

-
Hmm, die Methode ist die richtige. Aber wie wende ich die richtig an ?
WindowFromPoint gehört ja zu CWnd. Um an die Fenster in meinem Dialog zu kommen muss ich dann wohl pCWndDialog->WindowFromPoint(punkt) aufrufen oder ?
Da kommt irgendwie nur Humbug raus
Vor allem bei Fenstern die keinen Focus kriegen scheint das nicht hinzuhauen (Static, Groupbox etc)
Muss man die Koordinaten noch um-mappen oder sowas ?
-
Hm, das scheint nur bei Toplevelfenstern oder editfeldern im eigenen programm zu tun ...
-
Hi
Ich habs auch schon einmal verwendet und bei mir funktionierte es super.
Hab ungefähr sowas gemacht:
POINT p; GetCursorPos(&p); CWnd* pWnd = CWnd::WindowFromPoint(p); // tu irgendetwas mit pWnd z.b. pWnd->ShowWindow(SW_HIDE);Die Koordinaten müssen natürlich Screen-Koordinaten sein (wenn nötig also mit ClientToScreen umrechnen).
Achja, eine noch genauere Möglichkeit bietet:CWnd* ChildWindowFromPoint( POINT point, UINT nFlags ) const;Grüße Rapha