_GUICtrlToolbar_LoadBitmap ne charge pas mes icones : -1

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 22:31
Status : Hors ligne

_GUICtrlToolbar_LoadBitmap ne charge pas mes icones : -1

#1

Message par IsLaMalice » dim. 14 mai 2017 23:57

Bonjour,

Je tente de faire une toolbar pour mon petit programme, il va etre tout mimi.
Mais, j'ai un souci, mes images ne se chargent pas ! :cry:

Voici mon code, j'ai l'impression d'avoir tout respecté comme dans l'aide...
PS : le 1er message box renvoi -1 sur le _GUICtrlToolbar_LoadBitmap. Un probleme de format ?

Ce sont des fichiers que j'ai créé moi même, par Gimp, taille 48x48 pixels, exportés en 8bpp 1-bit alpha 256-slot palette

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiToolbar.au3>
#include <StaticConstants.au3>
#include <ToolbarConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Islamalice\Documents\tests-de-scripts\form.kxf
Local Enum $ico_pgup = 1000, $ico_orange, $ico_ctrlA, $ico_escargot, $ico_detail
$Form1 = GUICreate("POC", 140, 488, 358, 295)


$ToolBar1 = _GUICtrlToolbar_Create($Form1)

;~ msgbox(0,"",_GUICtrlToolbar_LoadBitmap($ToolBar1, @ScriptDir & "\icones\pageup.ico"))
_GUICtrlToolbar_LoadBitmap($ToolBar1, @ScriptDir & "\icones\pageup.ico")
_GUICtrlToolbar_LoadBitmap($ToolBar1, @ScriptDir & "\icones\rechercher-orange48.ico")
_GUICtrlToolbar_LoadBitmap($ToolBar1, @ScriptDir & "\icones\ctrlA.ico")
_GUICtrlToolbar_LoadBitmap($ToolBar1, @ScriptDir & "\icones\escargot.ico")
_GUICtrlToolbar_LoadBitmap($ToolBar1, @ScriptDir & "\icones\plus_detail.ico")
msgbox(0,"",@ScriptDir & "\icones\plus_detail.ico") ;---> le chemin est normal, pas de pb de \
_GUICtrlToolbar_AddButton($ToolBar1, $ico_pgup, 0)
_GUICtrlToolbar_AddButton($ToolBar1, $ico_orange, 1)
_GUICtrlToolbar_AddButton($ToolBar1, $ico_ctrlA, 2)
_GUICtrlToolbar_AddButton($ToolBar1, $ico_escargot, 3)
_GUICtrlToolbar_AddButtonSep($ToolBar1)
_GUICtrlToolbar_AddButton($ToolBar1, $ico_detail, 4)

qq'un a une idée ?

Faut il un bitmap d'un certain format ?

merci d'avance,
Islamalice

Avatar du membre
orax
Modérateur
Modérateur
Messages : 1452
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Contact :
Status : Hors ligne

Re: _GUICtrlToolbar_LoadBitmap ne charge pas mes icones : -1

#2

Message par orax » lun. 15 mai 2017 00:46

À mon avis il s'agit plutôt de ça : Windows bitmap (.bmp).
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)

IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 22:31
Status : Hors ligne

Re: _GUICtrlToolbar_LoadBitmap ne charge pas mes icones : -1

#3

Message par IsLaMalice » lun. 15 mai 2017 07:37

J'y ai bien pensé... j'ai aussi pris un .bmp (Gimp a exporté mon 48x48 .ico en .bmp) : même résultat...

Je ressaie avec une image que je n'ai pas créée moi même...

Je tente avec un bmp trouvé sur mon c:, il fait 32x32 :
C:\Windows\winsxs\wow64_microsoft-windows-m..\WindowsMovieMaker.bmp

ca marche !

je ressaie avec mon .ico reduit en 32x32 : nok
je convertis ce 32x32 en BMP : NOK toujours !!

est ce que cela se situerait dans les options d'export BMP de Gimp ?

IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 22:31
Status : Hors ligne

Re: _GUICtrlToolbar_LoadBitmap ne charge pas mes icones : -1  

#4

Message par IsLaMalice » mar. 16 mai 2017 21:44

tests suivants : j'utilise PAINT pour sauvegarder mon bmp : marche toujours pas en 256 couleurs.

Test en 24 bits ? ca marche !!

Avatar du membre
orax
Modérateur
Modérateur
Messages : 1452
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Contact :
Status : Hors ligne

Re: _GUICtrlToolbar_LoadBitmap ne charge pas mes icones : -1

#5

Message par orax » mar. 16 mai 2017 23:05

J'ai fait un essai avec le script d'exemple (dans l'aide) de la fonction _GUICtrlToolbar_LoadBitmap. J'ai juste changé les images, elles vont de 1 bit (noir et blanc) à 24 bits. Les cinq images s'affichent correctement, donc je ne suis pas sûr que ce soit juste une question de taille de bits. Voir le fichier joint.
Fichiers joints
script.zip
(8.34 Kio) Téléchargé 32 fois
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)

IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 22:31
Status : Hors ligne

Re: _GUICtrlToolbar_LoadBitmap ne charge pas mes icones : -1

#6

Message par IsLaMalice » mar. 16 mai 2017 23:16

je réussis aussi a exporter depuis gimp, en cochant la case :
capture-gimp_imagesia-com_1e1lv_small.png
capture-gimp_imagesia-com_1e1lv_small.png (17.51 Kio) Vu 514 fois

Avatar du membre
orax
Modérateur
Modérateur
Messages : 1452
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Contact :
Status : Hors ligne

Re: _GUICtrlToolbar_LoadBitmap ne charge pas mes icones : -1

#7

Message par orax » mer. 17 mai 2017 17:21

Effectivement, ça marche mieux quand cette case est cochée. :D D'après ce que j'ai compris, si la case Ne pas inscrire l'information d'espace couleur n'est pas cochée, Gimp enregistrera le BMP dans la version 4 de ce format. En revanche, si cette case est bien cochée, le fichier sera enregistré dans la version 3.

J'ai remarqué que c'est la fonction LoadImage (_WinAPI_LoadImage) qui ne charge pas le BMP (voir l'exemple dans script2.zip). Il semblerait que cette fonction ne prenne pas en charge les versions récentes (4 et 5) du format BMP. Mais je n'ai trouvé que peu d'informations à ce sujet :
► Afficher le texte
Il n'y a donc pas que la fonction _GUICtrlToolbar_LoadBitmap qui est concernée par le problème. Tous les scripts qui utilisent _WinAPI_LoadImage pour charger un fichier BMP pourraient être concernés.
Fichiers joints
script2.zip
(2.63 Kio) Téléchargé 34 fois
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)

Répondre