Comment changer la couleur du fond d'une fenêtre ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Necra
Messages : 12
Inscription : sam. 03/avr./2004 9:34
Localisation : Pau
Contact :

Comment changer la couleur du fond d'une fenêtre ?

Message 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
"De mon vivant, je ne serais jamais mort..."
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

Utilise la lib puretool dispo sur www.purearenat.net
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
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 :

Message par Chris »

Une troisième méthode:

Image
:roll:

Chris :)
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

J'aime bien la méthode de Chris, on peut mixer plusieurs couleurs! :lol:
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

Mais gare au coulure, ça c'est pas beau :wink:
DominiqueB
Messages : 47
Inscription : sam. 01/mai/2004 14:41

Attention !

Message 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é :P

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
Dominique
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

OK, va falloir que je corrige quelques codes, 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)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Chris a écrit :Une troisième méthode:

Image
:roll:

Chris :)

:mrgreen: :mrgreen:
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
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)]
Necra
Messages : 12
Inscription : sam. 03/avr./2004 9:34
Localisation : Pau
Contact :

Message par Necra »

OK, merci à tous pour votre aide.... :D
"De mon vivant, je ne serais jamais mort..."
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Surtout moi, j'ai vraiment bien aidé :lol: :jesors:

Chris :)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message 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 :)
Répondre