Page 1 sur 1

[..] Taille incorrecte des boutons d'une barre d'outils

Posté : lun. 11 oct. 2021 11:51
par jpascal
Bonjour,

Je souhaite créer une barre d'outils avec mes propres fichiers bitmap.
Cela semble possible malheureusement les images des boutons sont coupées.

J'ai testé avec la version beta, en spécifiant le paramètre $BTNS_AUTOSIZE, avec une image bmp compressée ou non.

Je ne peux pas joindre d'image de 32 pixels de large (le quota de fichiers joints a été atteint). :-(

Voici le code pour pouvoir tester :
;#AutoIt3Wrapper_Version=Beta

#include <GUIConstantsEx.au3>
#include <GuiToolbar.au3>

Global $g_aToolbarButton = ['toolbar_button_uncompressed', 'toolbar_button_rle_compressed']

Example()

Func Example()
   Local $hGUI, $hToolbar

   $hGUI = GUICreate("Toolbar", 200, 100)
   $hToolbar = _GUICtrlToolbar_Create($hGUI)
   GUISetState(@SW_SHOW)

   _GUICtrlToolbar_SetBitmapSize($hToolbar, 32, 32)

   For $i = 0 To UBound($g_aToolbarButton) - 1
      _GUICtrlToolbar_LoadBitmap($hToolbar, @ScriptDir & '\' & $g_aToolbarButton[$i] & '.bmp')
   Next
   For $i = 0 To UBound($g_aToolbarButton) - 1
;~       _GUICtrlToolbar_AddButton($hToolbar, $i + 1000, $i, 0)
      _GUICtrlToolbar_AddButton($hToolbar, $i + 1000, $i, 0, $BTNS_AUTOSIZE + $BTNS_BUTTON + $BTNS_CHECK)
   Next

   Do
   Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

Pouvez-vous me dire quelle est la bonne syntaxe pour que les images soient affichées correctement ?

Re: [..] Taille incorrecte des boutons d'une barre d'outils

Posté : lun. 11 oct. 2021 12:47
par jpascal
A noter que si j'utilise une liste d'images, cette fois-ci les images ne sont pas coupées mais floues. :-(

Local $hImageToolbar = _GUIImageList_Create(32, 32, 5)
_GUIImageList_AddIcon($hImageToolbar, @ScriptDir & '\' & $g_aToolbarButton[$i] & '.ico')
$g_hToolbar = _GUICtrlToolbar_Create($g_hGUI)
_GUICtrlToolbar_SetImageList($g_hToolbar, $hImageToolbar)

Je confirme que ces icônes font bien 32 pixels de large. Il n'y a qu'une icône dans chaque fichier.
Les images sont floues également avec _GUIImageList_Create(32, 32, 4), je perds juste la transparence.

Re: [..] Taille incorrecte des boutons d'une barre d'outils

Posté : mar. 12 oct. 2021 11:46
par jpascal
Petit test avec une icône de 48 pixels de large : toujours coupé avec _GUICtrlToolbar_LoadBitmap() et flou avec _GUIImageList_AddIcon()

Image Image

;#AutoIt3Wrapper_Version=Beta

#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiToolbar.au3>

Global $g_aToolbarButton = ['toolbar_button_uncompressed', 'toolbar_button_rle_compressed']

ToolbarIcon()

Func ToolbarBitmap()
   Local $hGUI, $hToolbar

   $hGUI = GUICreate("Bitmap", 220, 100)
   $hToolbar = _GUICtrlToolbar_Create($hGUI)
   GUISetState(@SW_SHOW)

   _GUICtrlToolbar_SetBitmapSize($hToolbar, 48, 48)

   For $i = 0 To UBound($g_aToolbarButton) - 1
      _GUICtrlToolbar_LoadBitmap($hToolbar, @ScriptDir & '\' & $g_aToolbarButton[$i] & '.bmp')
   Next
   For $i = 0 To UBound($g_aToolbarButton) - 1
;~       _GUICtrlToolbar_AddButton($hToolbar, $i + 1000, $i, 0)
      _GUICtrlToolbar_AddButton($hToolbar, $i + 1000, $i, 0, $BTNS_AUTOSIZE + $BTNS_BUTTON)
   Next

   Do
   Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>ToolbarBitmap

Func ToolbarIcon()
   Local $hGUI, $hToolbar

   $hGUI = GUICreate("Icône", 220, 100)
   $hToolbar = _GUICtrlToolbar_Create($hGUI)
;~    $hToolbar = _GUICtrlToolbar_Create($hGUI, BitOR($BTNS_AUTOSIZE, $BTNS_BUTTON, $BTNS_SHOWTEXT))
   GUISetState(@SW_SHOW)

;~    _GUICtrlToolbar_SetBitmapSize($hToolbar, 48, 48)

   $hToolBarImage = _GUIImageList_Create(48, 48, 5, 3)
   _GUIImageList_AddIcon($hToolBarImage, 'toolbar_button.ico')
   _GUIImageList_AddIcon($hToolBarImage, 'toolbar_button.ico')
   _GUICtrlToolbar_SetImageList($hToolbar, $hToolBarImage)

   _GUICtrlToolbar_AddButton($hToolbar, 1000, 0)
   _GUICtrlToolbar_AddButton($hToolbar, 1001, 1, $BTNS_AUTOSIZE + $BTNS_BUTTON)

   Do
   Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>ToolbarIcon

Re: [..] Taille incorrecte des boutons d'une barre d'outils

Posté : ven. 11 mars 2022 17:58
par jpascal
Pour les icônes, la solution est toute simple. Il suffit d'ajouter le paramètre $bLarge = True :

Code : Tout sélectionner

_GUIImageList_AddIcon($hToolBarImage, 'toolbar_button.ico', 0, True)
Image