![]() |
Hintergrund neu zeichnen beim Ausschalten der Titlebar
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,
ich habe mittels des folgenden Codes [durch SetWindowLong(... not wsCaption)] in einer Applikation die Möglichkeit eingebaut die Form-Titlebar ein- und auszuschalten, also die Applikation in einen MiniModus zu versetzen. Das Problem, welches jetzt auftritt ist, dass wenn ich die Applikation ohne Titlebar verschiebe der Hintergrund des unterliegenden Fensters/Desktops verschoben wurde und nicht automatisch neu gezeichnet wird. Erst wenn ich das unterliegende Fenster z.B. resize, wird es korrekt neu gezeichnet. Zur Veranschaulichung sind zwei kleine Screenshots angehängt, einmal von der Applikation im Minimodus und dann vom verschobenen Hintergrund des darunterliegenden Fensters. Hat jemand ne Ahnung, ob ich die Fenster im Hintergrund noch extra neu zeichnen lassen muss oder wie ich das sonst verhindern kann? Danke, Stefan
Delphi-Quellcode:
Procedure HideTitlebar(Formular: TForm);
Var Save : LongInt; Begin If Formular.BorderStyle=bsNone then Exit; Save:=GetWindowLong(Formular.Handle, gwl_Style); If (Save and ws_Caption)=ws_Caption then Begin Case Formular.BorderStyle of bsSingle, bsSizeable : SetWindowLong(Formular.Handle, gwl_Style, Save and (Not(ws_Caption)) or ws_border); bsDialog : SetWindowLong(Formular.Handle, gwl_Style, Save and (Not(ws_Caption)) or ds_modalframe or ws_dlgframe); End; Formular.Height:=Formular.Height-getSystemMetrics(sm_cyCaption); Formular.Refresh; End; end; |
Re: Hintergrund neu zeichnen beim Ausschalten der Titlebar
*Bump*
Zu dem Thema "Titelleiste verstecken" mit SetWindowLong gibts hier ne Menge Fragen und Antworten. Ist denn keinem das Problem mit dem nicht refreshten Hintergrund aufgefallen oder gibts dafür einfach keine Lösung? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 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-2025 by Thomas Breitkreuz