Jouer avec Aéro
Publié : mar. 26/avr./2011 19:03
Salut,
J'ouvre ce sujet pour discuter et proposer des codes pour jouer avec le thème Aéro sur Window 7 et Vista.
Actuellement, j'arrive à :
- retirer Aéro sur une fenêtre
- agrandir les bordures à l'intérieur de la fenêtre comme le fait l'explorateur Windows par exemple.
Je continue de fouiller pour trouver d'autre truc rigolo
Poster les vôtres
Code à jour du 26/04/2011 à 20h51
J'ouvre ce sujet pour discuter et proposer des codes pour jouer avec le thème Aéro sur Window 7 et Vista.
Actuellement, j'arrive à :
- retirer Aéro sur une fenêtre
- agrandir les bordures à l'intérieur de la fenêtre comme le fait l'explorateur Windows par exemple.
Je continue de fouiller pour trouver d'autre truc rigolo

Poster les vôtres

Code à jour du 26/04/2011 à 20h51
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 DWM_DisableWindowRendering(hWnd.i, State.i)
Protected Library
Library = OpenLibrary(#PB_Any, "dwmapi.dll")
If Library
If State
State = #DWMNCRP_DISABLED
Else
State = #DWMNCRP_ENABLED
EndIf
CallFunction(Library, "DwmSetWindowAttribute", hWnd, #DWMWA_NCRENDERING_POLICY, @State, SizeOf(Long))
CloseLibrary(Library)
EndIf
EndProcedure
Procedure DWM_WindowExtendFrame(hWnd.i, *Frame.RECT)
Protected Frame.RECT, Library
Frame\top = *Frame\right
Frame\Bottom = *Frame\Bottom
Frame\left = *Frame\left
Frame\right = *Frame\top
Library = OpenLibrary(#PB_Any, "dwmapi.dll")
If Library
CallFunction(Library, "DwmExtendFrameIntoClientArea", hWnd, @Frame)
CloseLibrary(Library)
EndIf
EndProcedure
Procedure DWM_GetColorizationColor()
Protected Library, Color.l, Opaque.b
Library = OpenLibrary(#PB_Any, "dwmapi.dll")
If Library
CallFunction(Library, "DwmGetColorizationColor", @Color, @Opaque)
CloseLibrary(Library)
EndIf
ProcedureReturn Color
EndProcedure
OpenWindow(0, 0, 0, 256, 256, "DWM", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget)
SetWindowColor(0, 0)
Aero = 0
Define Marge.RECT
ButtonGadget(0, 24, 24, 96, 24, "Aero")
ButtonGadget(1, 24, 24 * 2, 96, 24, "Bordure interne")
ButtonGadget(2, 24, 24 * 3, 96, 24, "Fond complet")
Couleur = DWM_GetColorizationColor()
TextGadget(3, 24, 24 * 4, 256 - 48, 32, "Couleur utilisée pour Aéro :" + Chr(10) + "RGBA(" + Str(Red(Couleur)) + ", " + Str(Green(Couleur)) + ", " + Str(Blue(Couleur)) + ", " + Str(Alpha(Couleur)) + ")")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Aero = 1 - Aero
DWM_DisableWindowRendering(WindowID(0), Aero)
Case 1
If Marge\top = 0 And Marge\Bottom = 0 And Marge\left = 0 And Marge\right = 0
Marge\top = 16
Marge\Bottom = 24
Marge\left = 8
Marge\right = 4
Else
Marge\top = 0
Marge\Bottom = 0
Marge\left = 0
Marge\right = 0
EndIf
DWM_WindowExtendFrame(WindowID(0), @Marge)
Case 2
If Marge\top >= 0 And Marge\Bottom >= 0 And Marge\left >= 0 And Marge\right >= 0
Marge\top = -1
Marge\Bottom = -1
Marge\left = -1
Marge\right = -1
Else
Marge\top = 0
Marge\Bottom = 0
Marge\left = 0
Marge\right = 0
EndIf
DWM_WindowExtendFrame(WindowID(0), @Marge)
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow