PanelGadget en couleur

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

PanelGadget en couleur

Message par Ekim »

Bonsoirs les amis :wink:

Savez vous comment colorier un "PanelGadget" s'il vous plait

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 322, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    PanelGadget     (0, 8, 8, 306, 203)
      AddGadgetItem (0, -1, "Onglet 1")
        PanelGadget (1, 5, 5, 290, 166)
          AddGadgetItem(1, -1, "Sous-onglet 1")
          AddGadgetItem(1, -1, "Sous-onglet 2")
          AddGadgetItem(1, -1, "Sous-onglet 3")
        CloseGadgetList()
      AddGadgetItem (0, -1,"Onglet 2")
        ButtonGadget(2, 10, 15, 80, 24,"Bouton 1")
        ButtonGadget(3, 95, 15, 80, 24,"Bouton 2")
    CloseGadgetList()
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
merci à vous)
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: PanelGadget en couleur

Message par Micoute »

Bonjour Ekim,

tu peux t'inspirer de ça:

Code : Tout sélectionner

Global color=CreateSolidBrush_($FFDFFD)

Prototype.i p_SetWindowTheme(hWnd,SubAppName.p-unicode,SubIdList.p-unicode)
Procedure.i ClearWindowTheme(hWnd)

   Protected SetWindowTheme_.p_SetWindowTheme
   Protected SubAppName.s
   Protected SubIdList.s

   If OSVersion()>=#PB_OS_Windows_XP
      If OpenLibrary(0,"UxTheme.dll")
         SetWindowTheme_=GetFunction(0,"SetWindowTheme")
         SetWindowTheme_(hWnd,SubAppName,SubIdList)
         CloseLibrary(0)
      EndIf
   EndIf

EndProcedure
Procedure PanelCallback(Window,Message,wParam,lParam)
   
   Result=#PB_ProcessPureBasicEvents
   Select Message
   Case #WM_CTLCOLORSTATIC;         Fond
      SetBkMode_(wParam,#TRANSPARENT)
      SetTextColor_(wParam,#Red);         ?????
      Result=Color
   EndSelect
   ProcedureReturn Result
   
EndProcedure

OpenWindow(1,10,200,300,300,"coloriage  d'un PanelGadget",#PB_Window_SystemMenu)
SetWindowColor(1,$FFDFFD)
HideWindow(1,1)
PanelGadget(1,5,10,290,100)
AddGadgetItem(1,-1,"Salut")

TextGadget(11,20,20,100,20,"Texte en Rouge")
TextGadget(12,20,40,100,20,"Texte en Bleu")
SetGadgetColor(11,#PB_Gadget_FrontColor,#Red)
SetGadgetColor(12,#PB_Gadget_FrontColor,#Blue)
CloseGadgetList()

ButtonGadget(90,20,200,120,25,"Ok")

ClearWindowTheme(GadgetID(1))
HideWindow(1,0)

SetClassLong_(GadgetID(1), #GCL_HBRBACKGROUND, color)
InvalidateRect_(GadgetID(1), #Null, #True)

SetWindowCallback(@PanelCallback())
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow

DeleteObject_(Color)
ou de ça:

Code : Tout sélectionner

CreateImage(0, 68, 20)
StartDrawing(ImageOutput(0))
Box(0, 0, 68, 20, #Yellow)
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(4, 2, "Standard", #Red)
StopDrawing()

CreateImage(1, 68, 20)
StartDrawing(ImageOutput(1))
Box(0, 0, 68, 20, #Green)
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(4, 2, "  Vert", #Black)
StopDrawing()

Imlist = ImageList_Create_(68, 20, #ILC_COLOR32, 2, 10)
ImageList_Add_(Imlist, ImageID(0), 0)
ImageList_Add_(Imlist, ImageID(1), 0)

OpenWindow(0, 0, 0, 400, 300, "Plein Contrôle du Panel Gadget coloré", #PB_Window_SystemMenu| #PB_Window_ScreenCentered)

PanelGadget(0, 10, 10, 380, 280)
SendMessage_(GadgetID(0), #TCM_SETPADDING, 0, 1|3<<16)
SendMessage_(GadgetID(0), #TCM_SETIMAGELIST, 0, Imlist)
AddGadgetItem(0, 0, "")
ButtonGadget(2, 10, 15, 100, 24, "Onglet 1 Bouton 1")
ButtonGadget(3, 115, 15, 100, 24, "Onglet 1 Bouton 2")
AddGadgetItem(0, 1, "")
ButtonGadget(4, 10, 15, 100, 24, "Onglet 2 Bouton 3")
ButtonGadget(5, 115, 15, 100, 24, "Onglet 2 Bouton 4")
CloseGadgetList()

t.TC_ITEM
t\mask = #TCIF_IMAGE
t\iImage = 0
SendMessage_(GadgetID(0), #TCM_SETITEM, 0, @t)
t\iImage = 1
SendMessage_(GadgetID(0), #TCM_SETITEM, 1, @t)

Repeat
  Select WaitWindowEvent()
      
    Case #PB_Event_CloseWindow
      Quit = 1
  EndSelect
Until Quit = 1
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Ekim
Messages : 215
Inscription : dim. 24/juin/2018 1:20

Re: PanelGadget en couleur

Message par Ekim »

Wouaw c'est extra)
merci @Micoute

c'est impeccable
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: PanelGadget en couleur

Message par kernadec »

bjr Ekim et Micoute
pour le fun voici un autre delire :wink:
cordialement

Code : Tout sélectionner

Enumeration
  #Win:#bouton1:#bouton2
  #PanelGadget1
  #Container1:#Container2
  #ToolBar1:#ToolBar2
  #image1:#image2:
  #imagegadget1:#imagegadget2
EndEnumeration
Enumeration 1
  #icon1:#icon2:#icon3:#icon4:#icon5:#icon6:#icon7:#icon8
EndEnumeration
#Flag = #PB_Window_SystemMenu|#PB_Window_ScreenCentered
titre$="PanelGadget color & ToolBar"
Procedure.f GradientCallback1(x, y)
  ProcedureReturn Sin(y * 0.5)
EndProcedure
Procedure.f GradientCallback2(x, y)
  ProcedureReturn Sin(x * 0.6)
EndProcedure
CreateImage(#image1,272,128,32):CreateImage(#image2,272,128,32)
OpenWindow( #Win, 0, 0, 300, 200,titre$,#Flag)
PanelGadget(#PanelGadget1,10,10,WindowWidth(#Win)-20,WindowHeight(#Win)-20)
AddGadgetItem(#PanelGadget1, -1, "Panel 1")
ContainerGadget(#Container1, 0, 0, 272,24,#PB_Container_BorderLess):
CloseGadgetList():StartDrawing(ImageOutput(#image1))
DrawingMode(#PB_2DDrawing_Gradient):BackColor($00FFFF):FrontColor($FF0F0F)
CustomGradient(@GradientCallback1()):Box(0, 0, 272,128):StopDrawing()
ImageGadget(#imagegadget1,0,25,272,128,ImageID(#image1))
DisableGadget(#imagegadget1,1):ButtonGadget(#bouton1,90,62,100,56,"Button1")
CreateToolBar(#ToolBar1,GadgetID(#Container1))
ToolBarStandardButton(#icon1,#PB_ToolBarIcon_New)
ToolBarStandardButton(#icon2,#PB_ToolBarIcon_Open)
ToolBarStandardButton(#icon3,#PB_ToolBarIcon_Undo)
ToolBarStandardButton(#icon4,#PB_ToolBarIcon_Redo)
;-----------------------------------------------------------------------------
AddGadgetItem(#PanelGadget1, -1, "Panel 2")
ContainerGadget(#Container2,  0, 0, 272,24,#PB_Container_BorderLess)
CloseGadgetList():StartDrawing(ImageOutput(#image2))
DrawingMode(#PB_2DDrawing_Gradient):BackColor($00FFFF):FrontColor($FF0F0F)
CustomGradient(@GradientCallback2()):Box(0, 0, 272,128):StopDrawing()
ImageGadget(#imagegadget2,0,25,272,128,ImageID(#image2))
DisableGadget(#imagegadget2,1):ButtonGadget(#bouton2,90,62,100,56,"Button2")
CreateToolBar(#ToolBar2, GadgetID(#Container2))
ToolBarStandardButton(#icon5,#PB_ToolBarIcon_Cut)
ToolBarStandardButton(#icon6,#PB_ToolBarIcon_Copy)
ToolBarStandardButton(#icon7,#PB_ToolBarIcon_Paste)
ToolBarStandardButton(#icon8,#PB_ToolBarIcon_Replace)
;-----------------------------------------------------------------------------
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow:   End
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #bouton1
          Debug "Identifiant bouton: "+Str(EventGadget())
        Case #bouton2
          Debug "Identifiant bouton: "+Str(EventGadget())
      EndSelect
    Case #PB_Event_Menu
      Debug "Identifiant ToolBar: "+Str(EventMenu()) 
  EndSelect
ForEver
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: PanelGadget en couleur

Message par Micoute »

Bonjour Kernadec, et merci pour le partage.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre