Barre d'outils : problème d'affichage des images [Résolu]

Signaler
Messages postés
40
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
21 avril 2007
-
Messages postés
40
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
21 avril 2007
-
Bonjour,

Dans un programme en C++ / GDI je fais apparaître une barre d'outils avec un bouton personnalisé seulement je n'arrive pas à charger l'image qui doit aller sur ce bouton. Si quelqu'un pouvait m'aider ce serait sympa, j'en ai marre de tourner en rond. Merci d'avance

Mon image bmp est en 16 * 16 pixels et a 24 profondeurs de couleurs bien que je n'ai utilisé qu'une seule couleur.


Voilà la partie du code concerné :


------------------
Dans les ressources

icon1 BITMAP DISCARDABLE "toolbar.bmp"


------------------
Dans le header

#define icon1 1000


------------------
Dans le main.cpp

HINSTANCE instance_barre_outils;

winapi (...)

...

LRESULT CALLBACK WindowProcedure (...)

...

WM_CREATE:

TBADDBITMAP tbab;
TBBUTTON tbb[1];

barre_outils = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT, 0, 0, 0, 0, handle_fenetre_retour, NULL, instance_barre_outils, NULL);


tbab.hInst = instance_barre_outils;
tbab.nID = icon1;

SendMessage (barre_outils, TB_ADDBITMAP, 1, (WPARAM)&tbab);

tbb[0].iBitmap = 0;
tbb[0].idCommand = id_nouveau;
tbb[0].fsState = TBSTATE_ENABLED;
tbb[0].fsStyle = TBSTYLE_BUTTON;
tbb[0].dwData = 0;
tbb[0].iString = SendMessage(barre_outils, TB_ADDSTRING, 0, (LPARAM)"Nouveau");

SendMessage(barre_outils, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);

SendMessage(barre_outils, TB_ADDBUTTONS, 1, (LPARAM)&tbb);

SendMessage(barre_outils, TB_AUTOSIZE, 0, 0);

3 réponses

Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 mars 2015

1) il te faut charger ton image : LoadImage, LoadIcon, ...
HBITMAP mon_h_bitmap = LoadImage (...)

2) il te faut associer ton image au bouton de ta toolbar
        TBADDBITMAP bitid;
        bitid.hInst = NULL;
        bitid.nID = (UINT)mon_h_bitmap;
        tbb[0].iBitmap = SendMessage(barre_outils, TB_ADDBITMAP, 1, (long)&bitid);

le reste ne changeant pas
Messages postés
40
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
21 avril 2007
1
Je reposte ma question en espérant que cette fois la mise en forme ne s'en aille pas.

Désolé



Bonjour,

Dans un programme en C++ / GDI je fais apparaître une barre d'outils avec un bouton personnalisé seulement je n'arrive pas à charger l'image qui doit aller sur ce bouton.
Si quelqu'un pouvait m'aider ce serait sympa, j'en ai marre de tourner en rond. Merci d'avance.

Mon image bmp est en 16 * 16 pixels et a 24 profondeurs de couleurs bien que je n'ai utilisé qu'une seule couleur.


Voilà la partie du code concerné :

------------------
Dans les ressources

icon1 BITMAP DISCARDABLE "toolbar.bmp"


------------------
Dans le header

#define icon1 1000


------------------
Dans le main.cpp

HINSTANCE instance_barre_outils; winapi (...)

...

LRESULT CALLBACK WindowProcedure (...)

...

WM_CREATE:

TBADDBITMAP tbab;
TBBUTTON tbb[1];

barre_outils = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT, 0, 0, 0, 0, handle_fenetre_retour, NULL, instance_barre_outils, NULL);

tbab.hInst = instance_barre_outils;
tbab.nID = icon1;

SendMessage (barre_outils, TB_ADDBITMAP, 1, (WPARAM)&tbab);

tbb[0].iBitmap = 0;
tbb[0].idCommand = id_nouveau;
tbb[0].fsState = TBSTATE_ENABLED;
tbb[0].fsStyle = TBSTYLE_BUTTON;
tbb[0].dwData = 0;
tbb[0].iString = SendMessage(barre_outils, TB_ADDSTRING, 0, (LPARAM)"Nouveau");

SendMessage(barre_outils, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
SendMessage(barre_outils, TB_ADDBUTTONS, 1, (LPARAM)&tbb); SendMessage(barre_outils, TB_AUTOSIZE, 0, 0);
Messages postés
40
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
21 avril 2007
1
Merci pour ton aide mogwai93.