Seite 1 von 1

Die Größe des ersten Fensters ermitteln

Verfasst: 01.05.2007 20:29
von man-in-black
Moin moin,

mein Titel erklärt eigendlich schon alles.
Doch ums nochmal kurz zu sagen:

Ich würde gerne die Höhe und die Breite des obersten Fensters auf dem Desktop ermitteln, habe aber keine Ahnung wie! :cry:
Aus diesem Grund hoffe ich, dass es für mein Problem einen passenden Api gibt.

MFG,
MIB

Verfasst: 01.05.2007 20:50
von AND51
Um das oberste Fenster zu kriegen:
Meinst du das, das den Fokus hat, oder das, das dem Benutzer am nächsten ist (dies schließt Sticky-Windows mit ein).

GetForegroundWindow_() für das, das den Fokus hat
GetTopWindow_() ist glaube ich für das, das bei der Z-Order am obersten ist

Danach bruachst du nur noch GetWindowRect_() benutzen, um zwei Koordinaten eines bestimmten Fensters zu erhalten: Die obere linke Ecke und die untere rechte Ecke, davon erhälst du die Koordinaten und kannst dir alles selbst ausrechnen.

Verfasst: 01.05.2007 20:55
von man-in-black
perfekt! :allright:
Besser und schneller als ich dachte,DANKE!
:o
MIB

Verfasst: 01.05.2007 21:02
von man-in-black
Naja, wo ich mir den zweiten Befehl so angucke,
scheint mir eines unklar: :oops:

WIE ist das mit dem zweiten Parameter von GetWindowRect() gemeint? :oops:

WIE macht man das? :| :roll:

MIB

Verfasst: 01.05.2007 21:41
von Fluid Byte

Code: Alles auswählen

OpenWindow(0,0,0,400,300,"untitled",#WS_OVERLAPPEDWINDOW | 1)

*hwndActive = GetForegroundWindow_()

GetWindowRect_(*hwndActive,wrc.RECT)

Debug "Breite: " + Str(wrc\right-wrc\left)
Debug "Höhe: " + Str(wrc\bottom-wrc\top)

While WaitWindowEvent() ! 16 : Wend

Verfasst: 01.05.2007 21:42
von Andreas_S
Kannst du bitte die Frage ganz lesen, hier noch mal:
Moin moin,

mein Titel erklärt eigendlich schon alles.
Doch ums nochmal kurz zu sagen:

Ich würde gerne die Höhe und die Breite des obersten Fensters auf dem Desktop ermitteln, habe aber keine Ahnung wie!
Aus diesem Grund hoffe ich, dass es für mein Problem einen passenden Api gibt.

MFG,
MIB

Verfasst: 01.05.2007 21:47
von sim0n
Das Fenster das aktuell den Fokus besitzt ist doch immer das oberste Fenster, oder etwa nicht?

Also müsste

Code: Alles auswählen

GetForegroundWindow_()
genau das richtige sein!

Verfasst: 01.05.2007 21:49
von Andreas_S
AND hats ausgezeichnet beantwortet :allright: !

Verfasst: 01.05.2007 22:09
von AND51
Vielen Dank! :D