Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Auf Fenster zugreifen ohne Rahmen, Captionleiste usw. (https://www.delphipraxis.net/48284-auf-fenster-zugreifen-ohne-rahmen-captionleiste-usw.html)

kpf 23. Jun 2005 07:59


Auf Fenster zugreifen ohne Rahmen, Captionleiste usw.
 
Folgendes Problem:

Ich möchte auf den Inhalt eines anderen Fensters zugreifen. Über die API-Funktionen erhalte ich folgende Werte:
GetWindowRect
Top: 102 | Left: 417 | Right: 927 | Bottom: 704

GetWindowRgn
hgCopy: 335810589 |

GetClientRect
Top: 0 | Left: 0 | Right: 502 | Bottom: 548

Dabei ist aber nicht klar, wo die Fläche beginnt, auf der gezeichnet wird. Also Fenster abzüglich Statusleiste, Captionleiste, Rahmen usw.

Desweiteren möchte ich in diesem Fenster die Scrollbars ausschalten. Mit
ShowScrollBar(hWin,SB_VERT, false);
werden sie aber nur enabled.

Hat jemand einen Tip?

mfg Klaus-Peter :bounce1:

Olli 1. Jul 2005 12:54

Re: Auf Fenster zugreifen ohne Rahmen, Captionleiste usw.
 
Man nehme ...

ScreenToClient() und ClientToScreen(). Anhand des ersten Parameters wirst du schon feststellen, daß ein Referenzfenster übergeben werden muß (das ist das Fenster von welchem du oben die Rects geholt hast!).

Mit der 2ten Funktion konvertierst du dann das Rechteck aus dem Aufruf von GetClientRect() in Screen-Koordinaten und voila kannst du top/left usw. vergleichen ;)

ACHTUNG: GetWindowRect() ermittelt bereits die Screen-Koordinaten. Also nicht nochmals konvertieren!!!

kpf 4. Jul 2005 20:36

Re: Auf Fenster zugreifen ohne Rahmen, Captionleiste usw.
 
Danke Assa,

werde es, sobald mein Hexenschuss kuriert ist einmal ausprobieren.

mfg lp :bounce1:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz