Aufgabe: Egal wo die Taskleiste ist und wie groß sie ist, soll ein Fenster optimal auf das ganze Desktop geöffnet werden.
Bei Taskleiste unten klappts bisher, bei Taskleiste oben oder an der Seite noch nicht.
Wer hat einen Tipp, wie man den Ort der Taskleiste herausbekommt und die Breite, wenn sie auf der Seite ist?
Code: Alles auswählen
;PB 4.0 Final
fensterrand = 3 ; jedes Fenster hat links, rechts oben unten je 3 Pixel Umrandung
titelleistenhoehe = 19
titelleiste$ = "Fenster optimal öffnen"
bildschirmbreite = GetSystemMetrics_(#SM_CXSCREEN) ; holt die Breite des Bildschirms
bildschirmhoehe = GetSystemMetrics_(#SM_CYSCREEN) ; holt die Höhe des Bildschirms
SystemParametersInfo_(#SPI_GETWORKAREA,0,@DesktopWorkArea.RECT,0) ; holt die Höhe des Desktops unter Berücksichtigung der Taskleiste
; Was holt die Breite des Desktops bei Taskleiste seitlich?
desktophoehe = DesktopWorkArea\Bottom
taskleistenhoehe = GetSystemMetrics_(#SM_CYSCREEN) - DesktopWorkArea\Bottom
;desktopbreite = ????
;was ist wenn Taskleiste oben oder rechts ist.
OpenWindow(0, 0, 0, bildschirmbreite - 2*fensterrand, desktophoehe - 2*fensterrand - titelleistenhoehe, titelleiste$, #PB_Window_SystemMenu | #PB_Window_TitleBar ) ;| #PB_Window_SizeGadget #PB_Window_BorderLess )
SystemParametersInfo_(#SPI_GETWORKAREA,0,@DesktopWorkArea.RECT,0)
TaskbarHeight = GetSystemMetrics_(#SM_CYSCREEN)-DesktopWorkArea\Bottom
Debug "BildschirmBreite = " + Str(bildschirmbreite) +" Pixel"
Debug "BildschirmHöhe = " + Str(bildschirmhoehe) +" Pixel"
Debug "DesktopBreite = ???"
Debug "DesktopHöhe = " + Str(desktophoehe) +" Pixel"
Debug "TaskleistenHöhe = " + Str(taskleistenhoehe) +" Pixel"
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
End