Das ClientRect im WindowRect ...

Anfängerfragen zum Programmieren mit PureBasic.
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Das ClientRect im WindowRect ...

Beitrag von es_91 »

Das WindowRect (API-Funktion GetWindowRect_ ()) liefert den Rahmenumfang, das ClientRect (GetClientRect_ ()) den Inhalt, ABER .. den gemessen am relativen Inhalt (also die Attribute "left", "top" sind "0","0") ..

Wie kann ich erfahren, wo das ClientRect im WindowRect sitzt (sprich wie groß die Ränder sind)?

Bild

Erklärung würde reichen.. Danke.
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Re: Das ClientRect im WindowRect ...

Beitrag von es_91 »

Erklärung (Lösung gefunden): ClientRect in Screen-Koordinaten umwandeln (mit ClientToScreen_ ()) und von den Attributen dieses Punktes die linke obere Ecke des WindowRects (GetWindowRect_ ()) subtrahieren.

(WindowRect-links-oben ist übereinstimmend mit WindowX (), und WindowY ())
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Das ClientRect im WindowRect ...

Beitrag von Andesdaf »

Wenn ich dein Anliegen richtig verstanden habe, dann geht das auch ohne API:

Code: Alles auswählen

WindowX(0, #PB_Window_InnerCoordinate) - WindowX(0, #PB_Window_FrameCoordinate)
Win11 x64 | PB 6.20
Benutzeravatar
chi
Beiträge: 90
Registriert: 17.05.2007 09:30
Wohnort: Austria

Re: Das ClientRect im WindowRect ...

Beitrag von chi »

Verwende lieber MapWindowPoints_()! Somit funktioniert auch RTL Layout.
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Re: Das ClientRect im WindowRect ...

Beitrag von es_91 »

Andesdaf hat geschrieben:

Code: Alles auswählen

WindowX(0, #PB_Window_InnerCoordinate) - WindowX(0, #PB_Window_FrameCoordinate)
:o

Vielen Dank Euch beiden. :)
Antworten