Bitmap de toolbar en 24*24 [Résolu]

Signaler
Messages postés
223
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
8 août 2011
-
Messages postés
223
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
8 août 2011
-
Bonjour,

J'ai un problème avec ma toolbar, j'ai une bitmap de 24*24 contenant des icônes personnalisés et quand je l'assigne à la toolbar les icônes se retrouves tronqués en 16*16 .
Le code suivant permet d'assigner des icônes système en 24*24 :

//-------------------------------------------------------------------------------------------------
//Création de la toolbar.
hToolBar = CreateWindowEx(0, TOOLBARCLASSNAME, "", WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | CCS_TOP, 0, 0, 0, 0, hwnd, (HMENU)IDC_TOOLBAR, hInst, 0);

//Structure contenant les bouttons à ajouter.
//Le premier paramètre iBitmap est l'index de l'image dans la liste d'image.
TBBUTTON tbb[] =
{
    {0, 0, 0, TBSTYLE_SEP, 0, 0, 0, 0},
    {0, IDC_BUTTON0, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
    {1, IDC_BUTTON1, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
    {0, 0, 0, TBSTYLE_SEP, 0, 0, 0, 0},
    {2, IDC_BUTTON2, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
    {3, IDC_BUTTON3, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
    {0, 0, 0, TBSTYLE_SEP, 0, 0, 0, 0},
};

//Obligatoire avant le message TB_ADDBITMAP si la toolbar est crée avec la fonction CreateWindowEx.
SendMessage(hToolBar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);

//Structure contenant les informations sur l'image bitmap de la toolbar.
TBADDBITMAP tbab;
tbab.hInst = HINST_COMMCTRL;
//Voila ce qui permet d'avoir les icônes en 24*24.
tbab.nID = IDB_STD_LARGE_COLOR;

//Ajout des icones de la toolbar.
SendMessage(hToolBar, TB_ADDBITMAP, (WPARAM)4, (LPARAM)&tbab);

//Ajout des boutons de la toolbar.
SendMessage(hToolBar, TB_ADDBUTTONS, (WPARAM)7,(LPARAM)(TBBUTTON*)&tbb);
//-------------------------------------------------------------------------------------------------

Voila ce code fonctionne pour les icônes système, maintenant avec les icônes personnalisés on remplace juste la structure d'informations sur l'image bitmap par :

//Structure contenant les infos sur l'image bmp contenant les icones de la toolbar.
TBADDBITMAP tbab;
//Handle de l'instance de l'application.
tbab.hInst = hInst;
//ID de l'image bitmap dans le fichier ressource.
tbab.nID = IDB_TOOLBAR;

Avec dans le fichier ressource :
IDB_TOOLBAR BITMAP DISCARDABLE "toolbar24*24.bmp"

Je pensais que les icones de la toolbar se chargerai normalement au dimention de la bitmap mais il n'en est rien. PLEASE HELP!!

1 réponse

Messages postés
223
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
8 août 2011

Je viens de trouver :

SendMessage(hToolBar, TB_SETBITMAPSIZE, 0, (LPARAM)MAKELONG(24, 24));

A placer avant le TB_ADDBITMAP.