toolbar et taille des icones

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

toolbar et taille des icones

Message par Backup »

ce code devrai normalement changer la taille du bouton et de son image dans le Toolbar

cependant, ça ne marche pas .... une idée ?

Code : Tout sélectionner

Enumeration
	#window
	#toolbar
	#container
	#image
	#bouton
EndEnumeration

Structure TBSize
	x.l
	y.l
EndStructure 
Global Size.TBSize


Declare MakeLong(low, high)
Declare SetToolBarIconSize(ToolBar, IconSize) 

If OpenWindow(#window, 0, 0, 600, 250, "ToolBar", #PB_Window_SystemMenu |#PB_Window_ScreenCentered)	
	CreateToolBar(#toolbar, WindowID(#window)) 				
	ToolBarImageButton(#bouton,LoadImage(#image,"D:\Dobro\PureBasic\dobro\Dobro_creation\EPB\Icones\ouvrir2.bmp")) ; mettre ici le chemin vers un bmp 64x64		
	
	SetToolBarIconSize(#toolbar,64)		; <---------- en principe devrai agrandir la taille des boutons ET de leur image
	Repeat
		EventID = WaitWindowEvent()
		If EventID = #PB_Event_Menu
			Debug "ToolBar ID: "+Str(EventMenu())
		EndIf
	Until EventID = #PB_Event_CloseWindow
EndIf

; ************ les procedures *************************

Procedure MakeLong(low, high)
	ProcedureReturn low | (high<<16)
EndProcedure 

Procedure SetToolBarIconSize(ToolBar, IconSize)		
	Size\x = IconSize
	Size\y = IconSize		;
	SendMessage_(ToolBarID(ToolBar), #TB_SETBUTTONSIZE, 0, MakeLong(Size\x, Size\y)) 
	SendMessage_(ToolBarID(ToolBar), #TB_SETBITMAPSIZE, 0, MakeLong(Size\x, Size\y))
	SendMessage_(ToolBarID(ToolBar), #TB_AUTOSIZE, 0, 0) 
EndProcedure
ici seul le bouton est redimensionnés .. pas l'image :?
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: toolbar et taille des icones

Message par kernadec »

bonjour Dobro
en ce moment je trafic dans le lib de RSBasic
y a ça qui semble être ce que tu cherche :D

Cordialement

Code : Tout sélectionner

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  If CreateToolBar(0,WindowID(0))
   TBID = SendMessage_(ToolBarID(0),#TB_GETIMAGELIST,0,0)
   ImageList_SetIconSize_(TBID,64,64)
   SendMessage_(ToolBarID(0),#TB_SETIMAGELIST,0,TBID)
   SendMessage_(ToolBarID(0),#TB_AUTOSIZE,0,0)
   ToolBarImageButton(1,3)
   ToolBarImageButton(2,5)
   ToolBarImageButton(3,7)
   ToolBarImageButton(4,9)
   ToolBarImageButton(5,11)
  EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: toolbar et taille des icones

Message par falsam »

Code : Tout sélectionner

Enumeration
   #window
   #toolbar
   #container
   #image
   #bouton
EndEnumeration

Structure TBSize
   x.l
   y.l
EndStructure 
Global Size.TBSize


Declare MakeLong(low, high)
Declare SetToolBarIconSize(ToolBar, IconSize) 

If OpenWindow(#window, 0, 0, 600, 250, "ToolBar", #PB_Window_SystemMenu |#PB_Window_ScreenCentered)   
   CreateToolBar(#toolbar, WindowID(#window))             
   ;ToolBarImageButton(#bouton,LoadImage(#image,"D:\Dobro\PureBasic\dobro\Dobro_creation\EPB\Icones\ouvrir2.bmp")) ; mettre ici le chemin vers un bmp 64x64      
   For i=0 To 14 : ToolBarStandardButton(i,i) : Next
   
   SetToolBarIconSize(#toolbar,64)      ; <---------- en principe devrai agrandir la taille des boutons ET de leur image
   Repeat
      EventID = WaitWindowEvent()
      If EventID = #PB_Event_Menu
         Debug "ToolBar ID: "+Str(EventMenu())
      EndIf
   Until EventID = #PB_Event_CloseWindow
EndIf

; ************ les procedures *************************

Procedure MakeLong(low, high)
   ProcedureReturn low | (high<<16)
EndProcedure 

Procedure SetToolBarIconSize(ToolBar, IconSize)      
   Size\x = IconSize
   Size\y = IconSize      ;
   SendMessage_(ToolBarID(ToolBar), #TB_SETBUTTONSIZE, 0, MakeLong(Size\x, Size\y)) 
   SendMessage_(ToolBarID(ToolBar), #TB_SETBITMAPSIZE, 0, MakeLong(Size\x, Size\y))
   SendMessage_(ToolBarID(ToolBar),#TB_AUTOSIZE,0,0)
EndProcedure
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: toolbar et taille des icones

Message par falsam »

En ajoutant un peu de couleur et pas forcement en haut de l'écran

Code : Tout sélectionner

Enumeration
  #Mainform
  
  #TBContainer1
  #Toolbar1
  
  #TBContainer2
  #Toolbar2
    
EndEnumeration


Procedure CreateCustomToolBar(Container, Toolbar, Window, x, y, ToolBarWidth, ToolBarHeight, Color, IconWidth, IconHeight)
  Structure StructSize 
    Width.l 
    Height.l 
  EndStructure 
  Protected Icon.StructSize 
  
  Icon\Width = IconWidth
  Icon\Height = IconHeight
    
  OpenWindow(Container, x, y, ToolBarWidth, ToolBarHeight,"", #WS_CHILD, WindowID(Window))
  SetWindowColor(Container, Color)
  CreateToolBar(ToolBar, WindowID(Container))
  
  SendMessage_(ToolBarID(ToolBar), #TB_SETBUTTONSIZE, 0, Icon\Width|(Icon\Height<<16))
  SendMessage_(ToolBarID(ToolBar),#TB_AUTOSIZE,0,0)
  SetActiveWindow(Window)
EndProcedure

;
;Test
;
OpenWindow(#Mainform,0, 0, 500, 300, "Toolbar", #PB_Window_Normal|#PB_Window_SizeGadget)
SetWindowColor(#Mainform, RGB(238, 232, 170))

;Exemple d'un toolbar en haut de l'ecran 
;Pour ce test on place quelques icones classiques
CreateCustomToolBar(#TBContainer1,#Toolbar1,#Mainform, 0, 0, WindowWidth(#Mainform), 70, RGB(189, 183, 107), 64, 64)
For i=0 To 14 : ToolBarStandardButton(i,i) : Next

;Exemple d'un toolbar a une position donnée
CreateCustomToolBar(#TBContainer2,#Toolbar2,#Mainform, 5, 100, 150, 38, RGB(189, 183, 107), 36, 36)
ToolBarStandardButton(0, #PB_ToolBarIcon_New)
ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
ToolBarStandardButton(2, #PB_ToolBarIcon_Save)


Repeat
  Select WaitWindowEvent()
      
    Case #PB_Event_SizeWindow
      If EventWindow()=#Mainform
        ResizeWindow(#TBContainer1, 0, 0, WindowWidth(#Mainform), #PB_Ignore)
      EndIf
      
    Case #PB_Event_CloseWindow
      End
  EndSelect
  
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: toolbar et taille des icones

Message par Backup »

@kernadec : Merci , c'est exactement ça :)

@Falsam : le code n'agrandi QUE le bouton , pas l'image qui va avec ... ;)

Merci a vous :)
Répondre