Child-Fenster mit Schatten
-
Hi! Ich möchte meinem Child-Fenster ein Schlagschatten verpassen, bisher habe ich es so versucht:
SetClassLong(LeftWindow, GWL_STYLE, CS_DROPSHADOW);Ich habe es auch schon mit den EX Styles versucht und der Ptr Funktion, aber nichts funktioniert. Es ist kein Schatten zu sehen.
-
Erzeuge eine neue Klasse die den Stil von Anfang an hat.
Dies ist ein Klassen Stil! Er golt für alle Fenster dieser Klasse.
Evtl. kann man diesen Stil nicht nachträglich setzen sondern er muss bei Erzeugen des Fensters in der Klasse gesetzt sein.
-
Funktioniert auch nicht

-
Wenn ich den Fensterstyle zu WS_POPUP mache, dann ist der Schatten zu sehen, aber ich will ja ein ChildFenster haben ...
-
Im MSDN-Artikel zu den Window Styles ( http://msdn.microsoft.com/en-us/library/ms632600.aspx ) steht im Community Content wohl was zu deinem Problem:
MSDN schrieb:
WS_CHILD prevents CS_DROPSHADOW
If you're hoping to make a temporary popup control in your window and want to use CS_DROPSHADOW to reinforce the fleeting nature of the popup, you can't use it with WS_CHILD -- it just ignores CS_DROPSHADOW. You'll need to make your control be WS_POPUP and then position it where you want it when it opens.
-
Ich werde dann vorerst auf den Schatten verzichten

-
Code-Walker schrieb:
Ich werde dann vorerst auf den Schatten verzichten

Warum? Baue doch einfach ein zweites Window, halbtransparent, leicht verschoben, mit etwas dunklem grau als Brush und lege es immer hinter dein Childwindow ...
Etwas Phantasie bitte ...

-
Tansperenz ist so ne Sache, soweit ich weiß ist das auch nicht ganz so einfach. Aber falls ich Tansparenz hin bekommen sollte, werde ich diese auch noch an ganz anderen Stellen im Programm nutzen.
-
Code-Walker schrieb:
Tansperenz ist so ne Sache, soweit ich weiß ist das auch nicht ganz so einfach. Aber falls ich Tansparenz hin bekommen sollte, werde ich diese auch noch an ganz anderen Stellen im Programm nutzen.
Quark.
SetLayeredWindowAttributes ( ... )Verpasse diesem "SchattenWindow" den Style: WS_EX_LAYERED und gut is
Mach einfach eine neue Fensterklasse damit.