Page 1 sur 1

Désactiver aero sur une fenêtre

Publié : lun. 25/avr./2011 14:42
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

Re: Désactiver aero sur une fenêtre

Publié : lun. 25/avr./2011 14:46
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: )

Re: Désactiver aero sur une fenêtre

Publié : lun. 25/avr./2011 15:09
par Le Soldat Inconnu
je pense avoir un début de réponse :
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Re: Désactiver aero sur une fenêtre

Publié : lun. 25/avr./2011 15:36
par nico
Tu penseras a nous poster un petit exemple, ça pourra toujours servir :)

Re: Désactiver aero sur une fenêtre

Publié : lun. 25/avr./2011 16:27
par nico
Bon j'ai essayé avec DwmEnableBlurBehindWindow, et bien que la fonction réussisse, ça ne marche pas :?:

Re: Désactiver aero sur une fenêtre

Publié : lun. 25/avr./2011 18:00
par Le Soldat Inconnu
j'ai trouvé un exemple pour ça sur le fofo anglais
http://www.purebasic.fr/english/viewtop ... wAttribute

Re: Désactiver aero sur une fenêtre

Publié : lun. 25/avr./2011 18:22
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

Re: Désactiver aero sur une fenêtre

Publié : lun. 25/avr./2011 19:19
par nico
Tu sais comment désactivé juste la transparence, pour une seule fenêtre par exemple, c'est possible?

Re: Désactiver aero sur une fenêtre

Publié : lun. 25/avr./2011 22:06
par nico
Bon, apparemment ce n'est pas possible pour une seule fenêtre.

Re: Désactiver aero sur une fenêtre

Publié : mar. 26/avr./2011 14:24
par dayvid
Hé et sinon comment activer le support aero ?
car je le trouve tres beaux :P

Re: Désactiver aero sur une fenêtre

Publié : mar. 26/avr./2011 16:44
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 

Re: Désactiver aero sur une fenêtre

Publié : ven. 29/avr./2011 14:42
par dayvid
Supert les copain, merci beaucoup :P