![]() |
Handle eines Fensters -> ist es im Vollbildmodus?
Hi wiedereinmal!
Ich möchte herausfinden, ob das Fenster, von dem ich das Handle habe, sich gerade im Vollbildmodus befindet. Hat jemand eine Ahnung, wie ich das machen könnte? Die Größe abzufragen und mit Screen.Width bzw. Screen.Height zu vergleichen geht nicht, weil ein maximiertes Fenster auch diese Größe hat - die Taskleiste habe ich nämlich versteckt. LG, ich |
Re: Handle eines Fensters -> ist es im Vollbildmodus?
Die IsZoomed WinAPI Funktion sollte da helfen.
|
Re: Handle eines Fensters -> ist es im Vollbildmodus?
laut msdn gibt diese funktion aber auch nur zurück ob das Fenster maximiert ist.
@jbg: Was meinst du mit "ist im vollbildmodus"? Von vollbild spricht man immer wenn ein Fenster den Bildschirm vollständig ausfüllt. |
Re: Handle eines Fensters -> ist es im Vollbildmodus?
Naja, ich meine eigentlich, dass es keine Titelleiste bzw. Rahmen hat und bildschirmfüllend ist...
Danke aber schonmal, für eure Antworten! LG, ich |
Re: Handle eines Fensters -> ist es im Vollbildmodus?
dann musst du einmal abfragen ob es die Größe der Bildschirmauflösung hat und dann ob es eine Titelleiste hat.
|
Re: Handle eines Fensters -> ist es im Vollbildmodus?
Ersteres geht, wie schon gesagt, leider nicht, weil ich die Taskbar ja verstecke, und somit hat dann jedes maximierte Fenster die Größe des Bilschirms; und zweiteres weiß ich leider nicht, wie das geht, da würde ich euch fragen. :roll:
LG, ich |
Re: Handle eines Fensters -> ist es im Vollbildmodus?
So:
Code:
Oder so ähnlich....
var WndRect: Trect;
aHandle := Handle des Fensters was du hast; GetClientRect(aHandle , WndRect); if WndRect.Top =0 WndRect.Left =0 WndRect.Right = GetSystemMetrics(SM_CXSCREEN)) WndRect.Bottom = GetSystemMetrics(SM_CYSCREEN)) then Fullscreen := True else Fullscreen := False; |
Re: Handle eines Fensters -> ist es im Vollbildmodus?
@turboPASCAL: Da fehlt noch die Prüfung ob das Fenster eine Titelleiste hat (nach der Definition des Threads-Eröffners)
|
Re: Handle eines Fensters -> ist es im Vollbildmodus?
Hm...
Code:
:gruebel:
if (getwindowlong(Handle, GWL_STYLE) or WS_CAPTION) > 0 then
|
Re: Handle eines Fensters -> ist es im Vollbildmodus?
Moin turboPASCAL,
also wenn schon, dann
Delphi-Quellcode:
oder
if (getwindowlong(Handle, GWL_STYLE) and WS_CAPTION) > 0 then
Delphi-Quellcode:
oder
if (getwindowlong(Handle, GWL_STYLE) and WS_CAPTION) <> 0 then
Delphi-Quellcode:
zum einen and statt or verwenden, da Du ja schliesslich wissen willst, ob das Flag enthalten ist, deshalb muss man es ausmaskieren (and) und nicht hinzufügen (or) ;-)
if (getwindowlong(Handle, GWL_STYLE) and WS_CAPTION) = WS_CAPTION then
Zum Anderen: > 0 birgt die Gefahr, dass das Ergebnis false wird, da hier ja der Wert eines Bitfeldes getestet wird, und das Ergebnis somit nicht als Zahl vergleichen werden sollte. Es könnte auch negativ sein, wenn man es als Zahlwert ansieht. Deshalb <> 0 oder = WS_CAPTION |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz