Couleur des fond d'écran et gadget des fnêtre

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
jb

Couleur des fond d'écran et gadget des fnêtre

Message par jb »

Bjrs
Voila je sais pas trop comment faire et l'exemple dans codearchiv je le comprend pas bien

Code : Tout sélectionner

; German forum:
; Author: 
; Date: 16. April 2003

hWnd1 = OpenWindow(0, 100, 200, 250, 260, #PB_Window_SystemMenu , "Hintergrundfarbe 1") 
hWnd2 = OpenWindow(1, 400, 200, 250, 260, #PB_Window_SystemMenu , "Hintergrundfarbe 2") 

  hBrush1 = CreateSolidBrush_(RGB(255, 0, 255)) 
  SetClassLong_(hWnd1, #GCL_HBRBACKGROUND, hBrush1) 

  hBrush2 = CreateSolidBrush_(RGB(100, 100, 100)) 
  SetClassLong_(hWnd2, #GCL_HBRBACKGROUND, hBrush2) 

  InvalidateRect_(hWnd1, #NULL, #TRUE) 
  InvalidateRect_(hWnd2, #NULL, #TRUE) 

  Repeat 
    EventID.l = WaitWindowEvent() 

    If EventID = #PB_Event_CloseWindow 
      Quit = 1 
    EndIf 

  Until Quit = 1 
  DeleteObject_(hBrush1) ; Brush löschen/freigeben! 
  DeleteObject_(hBrush2) 
End 
Je vois pas comment adapter ce code à des gadgets ..
Merci
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Salut :)

Voilà un exemple provenant de CodeArchiv, que j'avais un peu modifié.

Code : Tout sélectionner

; German forum: http://robsite.de/php/pureboard/viewtopic....=973&highlight=
; Author: Feri
; Date: 11. May 2003


;****************************************************************************** 
;* Beispiel zum Einfärben von Gadgets                                         * 
;****************************************************************************** 
; 
; Modifié (...juste un peu...)par Chris.
;

Global FondNoir , FondRouge 

FondNoir=CreateSolidBrush_(RGB(0,0,0))             ; Noir
FondRouge=CreateSolidBrush_(RGB(255,0,0))          ; Rouge 

Procedure COL_STRINGGADGET(WindowID,Message,wParam,lParam) 
  Result=#PB_ProcessPureBasicEvents 
  Select Message
    
    ;- #WM_CTLCOLOREDIT utilisé par StringGadget
    Case #WM_CTLCOLOREDIT 
      Select lParam                                  ; Handle du composant 
        Case GadgetID(1)                             ; N° du gadget 1
          SetBkMode_(wParam,#TRANSPARENT) 
          SetTextColor_(wParam,RGB(0,255,0))         ; Couleur du texte (Vert)
          Result=FondNoir                            ; Couleur du Fond (Noir) 
      EndSelect 

      ;- #WM_CTLCOLORSTATIC utilisé par Frame3DGadget, OptionGadget, TextGadget et TrackBarGadget 
    Case #WM_CTLCOLORSTATIC 
      Select lParam                                  ; Handle du composant 
        Case GadgetID(2)                             ; N° du gadget 2
          SetBkMode_(wParam,#TRANSPARENT) 
          SetTextColor_(wParam,RGB(0,0,0))           ; Couleur du texte (Noir) 
          Result=FondRouge                           ; Couleur du Fond (Rouge) 
        Case GadgetID(3)                             ; N° du gadget 3
          SetBkMode_(wParam,#TRANSPARENT) 
          SetTextColor_(wParam,RGB(0,0,0))           ; Couleur du texte (Noir) 
          Result=FondRouge                           ; Couleur du Fond (Rouge)
        Case GadgetID(4)                             ; N° du gadget 4
          SetBkMode_(wParam,#TRANSPARENT) 
          SetTextColor_(wParam,RGB(255,0,0))         ; Couleur du texte (Noir) 
          Result=FondNoir                            ; Couleur du Fond (Rouge) 
      EndSelect 

      ;- #WM_CTLCOLORLISTBOX utilisé par ListBoxGadget 
    Case #WM_CTLCOLORLISTBOX 
      Select lParam                                  ; Handle du composant
        Case GadgetID(5)                             ; N° du gadget 5
          SetBkMode_(wParam,#TRANSPARENT)
          SetTextColor_(wParam,RGB(255,0,0))         ; Couleur du texte (Rouge)
          Result=FondNoir                            ; Couleur du Fond (Noir)
      EndSelect
      
      ;- #WM_CTLCOLORBTN utilisé par ButtonGadget (Mais ça marche pas)
      ;Case #WM_CTLCOLORBTN 
      ;Select lParam                                  ; Handle du composant
      ;Case GadgetID(6)                             ; N° du gadget 6
      ;SetBkMode_(wParam,#TRANSPARENT)
      ;SetTextColor_(wParam,RGB(255,0,0))         ; Couleur du texte (Rouge)
      ;Result=FondNoir                            ; Couleur du Fond (Noir)
      
      ;EndSelect
  EndSelect 
  ProcedureReturn Result
EndProcedure 

OpenWindow(0,100,300,530,200,#PB_Window_SystemMenu,"Fenêtre de test") 
SetWindowCallback(@COL_STRINGGADGET()) 
CreateGadgetList(WindowID()) 
StringGadget(1,10,10,90,20,"StringGadget") 
TextGadget(2,10,40,300,100,"TextGadget 2",#PB_Text_Border) 
TextGadget(3,10,150,300,30,"TextGadget 3",#PB_Text_Center)
TrackBarGadget(4, 320, 150, 200, 30, 0, 100 )  
ListViewGadget(5, 320, 40, 200, 100)  
ButtonGadget(6, 110, 10, 50, 20, "Bouton")
ButtonImageGadget(7, 170, 10, 50, 20, 0)  
AddGadgetItem(5, 0, "ListGadget 4") 
ActivateGadget(4)
Repeat 
Until WaitWindowEvent() = #PB_EventCloseWindow 
DeleteObject_(FondNoir) 
DeleteObject_(FondRouge) 
End
L'original se trouve dans \CodeArchiv\Gadgets\Colors+Fonts\

Chris :)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Pour la couleur du fond des fenêtres, télécharge la librairie de Danilo SkinWin sur le site purearea, section userlibs

http://www.purearea.net/pb/english/index.htm

Dézip et installe le fichier SkinWin qui n'a pas d'extension dans le répertoire Purebasic\PureLibraries\UserLibraries

Le fichier SkinWin.txt contient la synthaxe des commandes.

Lorsque tu as fait ça, ferme l'éditeur Purebasic (s'il est ouvert) et ouvres-le pour que cette librairie soit prise en compte.
jb

Message par jb »

Merci à vous 2 :)
Répondre