Seite 1 von 1

Fenster grau einfärben "fade"

Verfasst: 25.08.2007 12:07
von PBFetischist
Hallo zusammen

wenn ich bei XP auf Computer ausschalten klicke, öffnet sich ein Fenster und der Rest auf meinem Desktop blendet von bunt auf grau.

Kann ich sowas auch mit einem Fenster machen von bunt auf grau "faden" ? Hat jemand sowas schon einmal gemacht oder hat einen Ansatz ?

Verfasst: 25.08.2007 12:55
von Swappy
Also spontan würde ich sagen das du einfach einen screenshot machst und dann im windowed screen das über sprite-channel fadest, aber kann auch gut sein, das es einfacher geht.

Verfasst: 25.08.2007 13:58
von HeX0R
So in der Art ?

Code: Alles auswählen

Procedure.l Fade(Color.l, SollColor.l, *_Step.LONG, _Steps.l)
	Protected G1.l = Green(Color), B1.l = Blue(Color), R1.l = Red(Color)
	Protected G2.l = Green(SollColor), B2.l = Blue(SollColor), R2.l = Red(SollColor)
	Protected GF.f = (G2 - G1) / _Steps * *_Step\l
	Protected BF.f = (B2 - B1) / _Steps * *_Step\l
	Protected RF.f = (R2 - R1) / _Steps * *_Step\l

	*_Step\l + 1
	ProcedureReturn RGB(Int(R1 + RF), Int(G1 + GF), Int(B1 + BF))
EndProcedure

Procedure Main()
	Protected D.l = 1000, Color.l = RGB(0, 0, 255), SollColor.l = RGB($57, $57, $57)
	Protected _Step.l = 1, TimeOUT.l = ElapsedMilliseconds() + 1000
	
	If OpenWindow(0, 0, 0, 400, 400, "Fade to Grey...", #PB_Window_SystemMenu | #PB_Window_TitleBar)
		SetWindowColor(0, Color)

		Repeat
			Select WaitWindowEvent(D)
				Case 0
					If TimeOUT < ElapsedMilliseconds()
						If D = 1000
							D = 50
							SetWindowColor(0, Fade(Color, SollColor, @_Step, 50))
							TimeOUT = ElapsedMilliseconds() + 50
						Else
							If _Step <= 50
								SetWindowColor(0, Fade(Color, SollColor, @_Step, 50))
								TimeOUT = ElapsedMilliseconds() + 50
							Else
								D = -1
							EndIf
						EndIf
					EndIf
				Case #PB_Event_CloseWindow
					Break
				Case #WM_MOUSEMOVE
					_Step   = 1
					D       = 1000
					TimeOUT = ElapsedMilliseconds() + 1000
					SetWindowColor(0, Color)
			EndSelect
		ForEver
	EndIf
EndProcedure

Main()

Verfasst: 25.08.2007 15:55
von Fluid Byte
Das gesamte Fenster + Rahmen oder nur den Inhalt?

Verfasst: 25.08.2007 21:36
von PBFetischist
@HeXOR

Das geht schon in die Richtung, aber hier wird ja nur das Fenster grau.
Das gesamte Fenster + Rahmen oder nur den Inhalt?
Alles sollte von Farbe in BW wechseln. Fenster, Rahmen und Inhalt. Bei Windows ist es zb so, dass auch Icons in einer Toolbar grau werden.