Désactiver aero sur une fenêtre

Sujets variés concernant le développement en PureBasic
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Désactiver aero sur une fenêtre

Message par Le Soldat Inconnu »

Salut,

Sous 7, est-il possible de désactivez aero juste pour une seule fenêtre ?

Si l'un de vous à une réponse, je suis preneur :)

Merci
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Désactiver aero sur une fenêtre

Message par Chris »

Windows 7 le fait pour un programme, j'ai jamais vu ça pour une seule fenêtre. (Sauf si le programme ne contient qu'une seule fenêtre, évidemment).

Comment il fait?
J'en sais rien, ... mais il le fait. (Sont capables de tout, chez Microsoft. Même du pire :mrgreen: )
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Désactiver aero sur une fenêtre

Message par Le Soldat Inconnu »

je pense avoir un début de réponse :
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Désactiver aero sur une fenêtre

Message par nico »

Tu penseras a nous poster un petit exemple, ça pourra toujours servir :)
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Désactiver aero sur une fenêtre

Message par nico »

Bon j'ai essayé avec DwmEnableBlurBehindWindow, et bien que la fonction réussisse, ça ne marche pas :?:
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Désactiver aero sur une fenêtre

Message par Le Soldat Inconnu »

j'ai trouvé un exemple pour ça sur le fofo anglais
http://www.purebasic.fr/english/viewtop ... wAttribute
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Désactiver aero sur une fenêtre

Message par Le Soldat Inconnu »

trop content, j'ai trouvé :mrgreen:

Code : Tout sélectionner

Enumeration 1
	#DWMWA_NCRENDERING_ENABLED
	#DWMWA_NCRENDERING_POLICY
	#DWMWA_TRANSITIONS_FORCEDISABLED
	#DWMWA_ALLOW_NCPAINT
	#DWMWA_CAPTION_BUTTON_BOUNDS
	#DWMWA_NONCLIENT_RTL_LAYOUT
	#DWMWA_FORCE_ICONIC_REPRESENTATION
	#DWMWA_FLIP3D_POLICY
	#DWMWA_EXTENDED_FRAME_BOUNDS
	#DWMWA_HAS_ICONIC_BITMAP
	#DWMWA_DISALLOW_PEEK
	#DWMWA_EXCLUDED_FROM_PEEK
	#DWMWA_LAST
EndEnumeration
Enumeration
	#DWMNCRP_USEWINDOWSTYLE
	#DWMNCRP_DISABLED
	#DWMNCRP_ENABLED
	#DWMNCRP_LAST
EndEnumeration

Procedure DisableAero(hWnd.i, State.i)
	
	If OpenLibrary(0, "dwmapi.dll")
		
		If State
			State = #DWMNCRP_DISABLED
		Else
			State = #DWMNCRP_ENABLED
		EndIf
		
		CallFunction(0, "DwmSetWindowAttribute", hWnd, #DWMWA_NCRENDERING_POLICY, @State, SizeOf(Long))
		
		CloseLibrary(0)
	EndIf
	
EndProcedure

OpenWindow(0, 0, 0, 300, 300, "DWM", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget)

Aero = 1
DisableAero(WindowID(0), Aero)

ButtonGadget(0, 5, 5, 64, 24, "Aero")

Repeat
	Event = WaitWindowEvent()
	
	Select Event
		Case #PB_Event_Gadget
			Select EventGadget()
				Case 0
					Aero = 1 - Aero
					DisableAero(WindowID(0), Aero)
			EndSelect
	EndSelect
	
Until Event = #PB_Event_CloseWindow
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Désactiver aero sur une fenêtre

Message par nico »

Tu sais comment désactivé juste la transparence, pour une seule fenêtre par exemple, c'est possible?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Désactiver aero sur une fenêtre

Message par nico »

Bon, apparemment ce n'est pas possible pour une seule fenêtre.
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Désactiver aero sur une fenêtre

Message par dayvid »

Hé et sinon comment activer le support aero ?
car je le trouve tres beaux :P
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Désactiver aero sur une fenêtre

Message par nico »

Code : Tout sélectionner

#DWM_EC_DISABLECOMPOSITION=0
#DWM_EC_ENABLECOMPOSITION=1

uCompositionAction.l=#DWM_EC_ENABLECOMPOSITION

If OpenLibrary(0, "dwmapi.dll")
  *func=GetFunction(0,"DwmEnableComposition")
  If *func
    CallFunctionFast(*func,uCompositionAction)
    Delay(60000)
  EndIf
  CloseLibrary(0)
EndIf 
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Désactiver aero sur une fenêtre

Message par dayvid »

Supert les copain, merci beaucoup :P
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre