Fenster grau einfärben "fade"

Für allgemeine Fragen zur Programmierung mit PureBasic.
PBFetischist
Beiträge: 55
Registriert: 26.10.2004 19:42

Fenster grau einfärben "fade"

Beitrag 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 ?
Benutzeravatar
Swappy
Beiträge: 51
Registriert: 09.12.2004 22:56
Wohnort: Hamburg
Kontaktdaten:

Beitrag 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.
Wer anderen eine Grube gräbt, hat Gold im Mund.
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag 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()
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Das gesamte Fenster + Rahmen oder nur den Inhalt?
Windows 10 Pro, 64-Bit / Outtakes | Derek
PBFetischist
Beiträge: 55
Registriert: 26.10.2004 19:42

Beitrag 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.
Antworten