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

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
jpascal
Niveau 6
Niveau 6
Messages : 226
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

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

#1

Message 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 ?
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
jpascal
Niveau 6
Niveau 6
Messages : 226
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

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

#2

Message 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.
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
jpascal
Niveau 6
Niveau 6
Messages : 226
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

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

#3

Message 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
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
jpascal
Niveau 6
Niveau 6
Messages : 226
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

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

#4

Message 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
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
Répondre