Panel 20% transparenz
-
hi ihr!
welches steuerelement (am liebsten wäre mir ein panel oder so...) und wie kann ich erreichen, dass alles unter diesem element mit einer bestimmten transparenz sichtbar bleibt...?
Auf das Panel oder so würde ich dann gern wieder Steuerelemente wie Checkboxes, etc. stellen wollen!
-
?
-
Glaube kaum das das so leicht geht...wenns überhaupt geht
-
Bitte bitte! es muss doch eine Lösung geben!
-
nicht dass ich wüsste. Hast du schonmal eine Anwendung gesehen die sowas kann?
-
Hi,
geht. Hat aber ein paar Hacken, die du selber schnell rausfinden wirst.
Erstell ne Komponente und füge eine Method hinzu:void maketransparent(HWND AHandle,int ABlending) { SetWindowLong(AHandle, GWL_EXSTYLE,GetWindowLong(AHandle, GWL_EXSTYLE) | WS_EX_LAYERED); SetLayeredWindowAttributes(AHandle, 0,(255*ABlending)/100, LWA_ALPHA); BLENDFUNCTION blend; blend.BlendOp = AC_SRC_OVER; blend.BlendFlags = 0; blend.AlphaFormat = 0; blend.SourceConstantAlpha = AC_SRC_ALPHA ; UpdateLayeredWindow(AHandle, NULL, NULL, NULL, NULL, NULL,NULL, &blend, ULW_ALPHA); }
schreib in der PaintMethode:
maketransparent(Handle,20);
[ Dieser Beitrag wurde am 14.08.2002 um 20:33 Uhr von AndreasW editiert. ]
-
Tatsächlich, hab ich ja noch nie gesehen.
Die Macken die mir aufgefallen sind:- ALLES wird transparent
- sehr ressourcenintensiv, vorallem beim resizen
-
gneau, das sind die wesentlichen Nachteile.
Man kann durch den Parent oder das Parentform hindurchschauen. Soweit macht das also wenig Sinn. Wenn man nur ein Control haben möchte, das Simi-Transparent ist und dahinter ein Bitmap legen möchte, hat man ein recht großes Problem.
Wenn jemand weiss wie man diesen unglücklichen Umstand beheben kann, möge er sich doch bitte melden.
Danke
[ Dieser Beitrag wurde am 23.05.2003 um 21:13 Uhr von AndreasW editiert. ]
-
hm,
kaum ein Jahr her, und schon funzt da was nicht.
maketransparent(Panel1->Handle,10);
und nichts passiert. könnt ihr mal bei euch versuchen, worans liegt ?
Ich steh auf'n Schlauch...
PS: Den Umstand, dass das Panel durch das Formular transparent wird nehme ich in kauf.
[ Dieser Beitrag wurde am 23.05.2003 um 21:14 Uhr von AndreasW editiert. ]
-
vielleicht solltet ihr mal noch anmerken, dass das nur bei win2000 und xp funktioniert, ansonsten recht sinnlos ist. naja ich hatte mal was gepostet zu semitransparenten fenstern, ist aber schon ne weile her. müsst ihr mal guggen.
-
ja, ich weiss. Aber da ich nur Win2000 habe kanns daran nicht liegen. Es funktioniert ja wunderbar, wenn ich das Handle des Formulars angebe.
Ich möchte aber ein Panel auf dem Formular unsichtbar machen. Den Effekt, dass das Panel und das Formular an der Position des Panels durchsichtig wird, möchte ich nutzen.
Ich platziere ein Panel und hab das Formular an der Stelle unsichtbar oder simitransparent. Hat den vroteil, dass ich nicht wild mit Regions durch die Gegend schmeissen muss. Des weiteren kann ich ein Panel auf dem Formular verankern. Dadurch kann ich die simitransparente fläche steuern. Ansich eine tolle Sache. Hat ja auch schon mal funktioniert. Allerdings will es nun nicht mehr. Funktioniert es denn bei dir ?
[ Dieser Beitrag wurde am 25.05.2003 um 11:10 Uhr von AndreasW editiert. ]
-
also laut msdn können child-windows nicht transparent werden. zumindest verstehe ich das so...