Seite 1 von 2

Höhe der Taskbar rausfinden

Verfasst: 15.08.2006 11:18
von JohnMC
Hallo mal wieder!

Ne Frage:
Wie kann ich dei Höhe der Taskbar raussfinden?

Weil ich möchte ein Fenster beim klick auf ein systray-symbol ein fenster öffnen, das 1pixel über der taskbar ist, dazu brauche ich doch die höhe der taskbar oder??

THX

JohnMC

Verfasst: 15.08.2006 11:24
von Kaeru Gaman
gibts bestimmt auch ne API-funktion, um das unten rechts anzubinden - oder nich...?

Verfasst: 15.08.2006 11:33
von bobobo

Verfasst: 16.08.2006 07:01
von PureLust
Ich saß gerade an einem ähnlichen Problem. Hab daher zufällig eine Lösung parat:

Code: Alles auswählen

SystemParametersInfo_(#SPI_GETWORKAREA,0,@DesktopWorkArea.RECT,0)
TaskbarHeight = GetSystemMetrics_(#SM_CYSCREEN)-DesktopWorkArea\Bottom

Debug "TaskBarHeight = "+Str(TaskbarHeight)+" Pixel"
Nähere Infos dazu sowie weiteren Möglichkeiten der System Information Functions gibt's hier:

http://msdn.microsoft.com/library/defau ... rsinfo.asp
http://msdn.microsoft.com/library/defau ... etrics.asp

Nochmals big thanx to edel for his help!!! ;)

Grüße, PL.

Höhe der Taskbar

Verfasst: 17.08.2006 14:17
von JohnMC
@ PureLust:

wenn ich den punkt 15pixel über der taskbar bekommen will, ist das doch desktopheight()-taskbarheight, oder?? weil bei mir klappts nicht....

Re: Höhe der Taskbar

Verfasst: 17.08.2006 17:10
von PureLust
JohnMC hat geschrieben:wenn ich den punkt 15pixel über der taskbar bekommen will, ist das doch desktopheight()-taskbarheight, oder??
Nein, da fehlt leider noch so Einiges.
Genaugenommen müsstest Du die Y-Koordinate wie folgt bestimmen:
YPos des Fensters = DesktopHeight(0) - TaskbarHeight - 15 - FensteHöhe - FensterRahmenHöhe - TitelLeistenHöhe

Du musst halt berücksichtigen, dass bei OpenWindow() die X & Y Koordinaten die äusseren Koordinaten und Width & Height die inneren Abmessungen des Fensters sind !!!
Somit wird das letztendlich geöffnete Fenster also nochmals um die Höhe des Rahmens und der Titelleiste länger sein, als Du es per Height angegeben hast.
Diese Werte musst Du halt auch noch mit abziehen - oder Du machst ein Rahmenloses Fenster. ;)

PS: Um die TitelLeistenHöhe eines Fensters heraus zu bekommen, versuchs mal mit "SM_CYCAPTION" aus GetSystemMetrics (Link dazu, siehe oben).
Dort findest Du auch Angaben zur Rahmenstärke eines Fensters

Verfasst: 17.08.2006 18:18
von Ja!
..und was ist, wenn jemand die Taskbar auf
"Automatisch in den Hintergrund" gestellt hat?

Dann steht Dein Fenster in der Luft..oder?

Verfasst: 17.08.2006 18:25
von PBZecke
Außerdem sollte beachtet werden, dass sich die Taskleiste auch oben, links,
oder am rechten Bildschirmrand befinden kann!

Edit:

Hab schnell mal gesucht. Das sollte helfen:


http://www.purebasic.fr/german/viewtopi ... ht=taskbar

Verfasst: 17.08.2006 18:29
von Ja!
...ja und sie kann in der Höhe, bzw. Breite(wenn sie an der Seite sein sollte)
verändert/herausgezogen werden. :-)

Ohaaa

Verfasst: 19.08.2006 12:21
von JohnMC
Ohhaaa hey des is viel zu kompliziert hey da hab ich kein bock drauf
ich fetz des fenster einfach in die mitte und des wars..... :wink: