Comment changer la couleur du fond d'une fenêtre ?
Comment changer la couleur du fond d'une fenêtre ?
Voilà, j'ai crée une fenêtre avec la fonction OpenWindow()
Et je voudrait maintenant changer la couleur du fond de cette fenêtre.
Comment faire?
Merci
Et je voudrait maintenant changer la couleur du fond de cette fenêtre.
Comment faire?
Merci
"De mon vivant, je ne serais jamais mort..."
Utilise la lib puretool dispo sur www.purearenat.net
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
ou alors ceci :
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.90
;
; Explication du programme :
; Changer la couleur de fond de la fenêtre
; On ouvre la fenêtre en mode invisible
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_Invisible, "Couleur de fond")
; Couleur de fond
SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, CreateSolidBrush_(RGB(255, 255, 255)))
HideWindow(0, 0) ; on montre la fenêtre
Repeat
Event = WaitWindowEvent()
Until Event = #WM_CLOSE
EndIf
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 47
- Inscription : sam. 01/mai/2004 14:41
Attention !
Dans le code tu as oublié un DeleteObject_() sur la brosse utlisée !
Tu risques des pertes de ressources si tu oublies cela !
Voici une version modifiée qui donne un fond hachuré
Dominique
Tu risques des pertes de ressources si tu oublies cela !
Voici une version modifiée qui donne un fond hachuré

Code : Tout sélectionner
; Changer le type de fond de la fenêtre
;#HS_BDIAGONAL hachures 45-degrés de haut en bas et de la gauche vers la droite
;#HS_CROSS hachures Horizontales et verticales en croix
;#HS_DIAGCROSS hachures 45-degrés en croix
;#HS_FDIAGONAL hachures 45-degrés de bas en haut et de la gauche vers la droite
;#HS_HORIZONTAL hachures Horizontales
;#HS_VERTICAL hachures verticales
; On ouvre la fenêtre en mode invisible
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_Invisible, "Couleur de fond")
Brosse.l = CreateHatchBrush_(#HS_FDIAGONAL, RGB(255, 182, 255))
; Couleur et type de fond
;SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, CreateSolidBrush_(RGB(255, 182, 255)))
SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, Brosse)
HideWindow(0, 0) ; on montre la fenêtre
Repeat
Event = WaitWindowEvent()
Until Event = #WM_CLOSE
DeleteObject_(Brosse) ; On oublie pas de détruire l'objet quand on en a plus besoin !
EndIf
Dominique
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
moi, je supprime l'object directement après l'application du style au fond de la fenêtre, ça évite de l'oublier.
je ne pense pas que ça gène car cela fonctionne
je ne pense pas que ça gène car cela fonctionne

Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.90
;
; Explication du programme :
; Changer la couleur de fond de la fenêtre
; On ouvre la fenêtre en mode invisible
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_Invisible, "Couleur de fond")
; Couleur de fond
CouleurFondFenetre = CreateSolidBrush_(RGB(255, 255, 255))
SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, CouleurFondFenetre)
DeleteObject_(CouleurFondFenetre)
HideWindow(0, 0) ; on montre la fenêtre
Repeat
Event = WaitWindowEvent()
Until Event = #WM_CLOSE
EndIf
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
J'ai testé ton code Sous XP familial , et ça ne fonctionnait pas .Le Soldat Inconnu a écrit :moi, je supprime l'object directement après l'application du style au fond de la fenêtre, ça évite de l'oublier.
je ne pense pas que ça gène car cela fonctionne![]()
J'ai placé DeleteObject_(CouleurFondFenetre) après la boucle , et là , c'est ok . Merci , je vais en avoir besoin
