![]() |
DropShadow und SetWindowRGN
Hallo,
ich hätte da mal gern 'ne Frage... Ich hab mir ein nicht rechteckiges Fenster gebaut (SetWindowRGN). Jetzt möchte ich den DropShadow aktivieren. Geht ja ganz einfach:
Delphi-Quellcode:
Leider muss man Windows noch sagen, dass sich das Fenster geändert hat, sonst passiert nichts. Senden wir also dem Form 'ne Nachricht:
SetClassLong(Handle, GCL_STYLE, GetClassLong(Handle, GCL_STYLE) or CS_DROPSHADOW);
Delphi-Quellcode:
Jetzt kommt der Spass: Nach dem ReCreaten (ich liebe Denglisch :zwinker: ) ist aber natürlich das Fenster wieder rechteckig. Also muss ich wieder die Fenster-Region anpassen. Leider flimmert das aber.
SendMessage(Handle, CM_RECREATEWND, 0, 0);
Nun die Frage: Kann ich Windows mitteilen, dass das Fenster jetzt einen Schatten hat, ohne dass ich es neu erstellen musss? Gruß xaromz |
Re: DropShadow und SetWindowRGN
Wäre es nicht besser die CreateParams-Methode der Form zu überschreiben um die Fenster(klassen)attribute zu setzen?
|
Re: DropShadow und SetWindowRGN
Hallo,
ich hätte mit dem Einwand rechnen sollen. Vielleicht noch ein paar Erklärungen: Das Ganze ist ein Splash-Screen, der mittels ![]() Gruß xaromz |
Re: DropShadow und SetWindowRGN
OK, dann zur eigentlichen Frage...
Zitat:
ps: allerdings könntest/solltest du die Region in CreateParams setzen, um beim Neuerstellen des Fensters (bei bei VCL-Fenstern nicht ungewöhnlich ist) das gewünschte Verhalten sicher zu stellen. |
Re: DropShadow und SetWindowRGN
Mist. Danke für die Antwort
Gruß xaromz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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