Page 1 sur 1
Comment changer la couleur du fond d'une fenêtre ?
Publié : dim. 16/mai/2004 16:35
par Necra
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
Publié : dim. 16/mai/2004 16:51
par julien
Utilise la lib puretool dispo sur
www.purearenat.net
Publié : dim. 16/mai/2004 16:59
par Le Soldat Inconnu
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
Publié : dim. 16/mai/2004 17:20
par Chris
Une troisième méthode:
Chris

Publié : dim. 16/mai/2004 18:10
par nico
J'aime bien la méthode de Chris, on peut mixer plusieurs couleurs!

Publié : dim. 16/mai/2004 18:22
par julien
Mais gare au coulure, ça c'est pas beau

Attention !
Publié : dim. 16/mai/2004 18:47
par DominiqueB
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é
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
Publié : lun. 17/mai/2004 8:34
par Le Soldat Inconnu
OK, va falloir que je corrige quelques codes, merci
Publié : lun. 17/mai/2004 8:45
par Anonyme2
Publié : lun. 17/mai/2004 12:31
par Le Soldat Inconnu
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
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
Publié : mar. 18/mai/2004 19:37
par Necra
OK, merci à tous pour votre aide....

Publié : mar. 18/mai/2004 20:06
par Chris
Surtout moi, j'ai vraiment bien aidé
Chris

Publié : mer. 26/mai/2004 7:54
par comtois
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 testé ton code Sous
XP familial , et ça ne fonctionnait pas .
J'ai placé
DeleteObject_(CouleurFondFenetre) après la boucle , et là , c'est ok . Merci , je vais en avoir besoin
