![]() |
Auf Screensaver Ende reagieren
Hallo! :hi:
Ich habe ein Programm geschrieben, welches graphische Inhalte innerhalb eines Forms darstellt. Delphi habe ich für das User Interface verwendet, und eine C++ .dll malt in das Fenster (über Handle usw..). Neulich entdeckte ich einen Bug: Nachdem ein Screensaver angesprungen war und wieder beendet, kann es passieren, dass die Fenster nicht neu gezeichnet werden (also den Inhalt meine ich), und das sieht ziemlich kaputt aus. Ich müsste da einen Refresh erzwingen. Jetzt die Frage, ob jemand weiss, welche Windows-Message (oder sonst was anderes...) man abfragen muss, um auf das Terminieren eines Screensavers zu reagieren ?? Thanks a lot! |
Re: Auf Screensaver Ende reagieren
Ich gehe jede Wette ein, das liegt nicht am Screensaver. Sollte dein Fenster von einem anderem überdeckt werden, sieht es wahrscheinlich genauso aus.
Lös die Zeichenroutine im OnPaint Ereigins deiner Form oder der Paintbox, oder auf was du sonst zeichnest, aus. Und im Prinzip zeichent man nicht auf den Canvas, da die GDI Ausgaben extrem langsam sind. Statt dessen zeichnet man auf ein Bitmap im Speicher und kopiert es bei Bedarf (OnPaint) auf den entsprechenden Canvas. Beispiel gibt es hier: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 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