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.....
