OVH Cloud OVH Cloud

pb Toolbar

5 réponses
Avatar
Pendloup
Bonjour,


Je m'embête avec des toolbar. J'ai refait les bitmaps en 256 couleurs. Or
je n'ai plus de transparence. Comment donc faire une Toolbar avec des
boutons transparents et en 256 couleurs ?


En vous remerciant,


Pendloup.

5 réponses

Avatar
Christian ASTOR
Pendloup wrote:

Je m'embête avec des toolbar. J'ai refait les bitmaps en 256 couleurs. Or
je n'ai plus de transparence. Comment donc faire une Toolbar avec des
boutons transparents et en 256 couleurs ?



ImageList_AddMasked()
Avatar
Pendloup
Une réponse le jour même, un vendredi à 20h passée !
Merci mille fois ,

Pendloup.

"Christian ASTOR" a écrit dans le message de
news: 43a31222$0$11352$
Pendloup wrote:

Je m'embête avec des toolbar. J'ai refait les bitmaps en 256 couleurs.
Or je n'ai plus de transparence. Comment donc faire une Toolbar avec des
boutons transparents et en 256 couleurs ?



ImageList_AddMasked()


Avatar
Pendloup
Bon ben j'ai testé en créant ma toolbar avec CreateWindowEx(), puis une
image list, mais sans succès.

Voici mon code :

// Tabelau des boutons

TBBUTTON g_rgTbButtons[] {
{0, 0, TBSTATE_ENABLED,
TBSTYLE_SEP, 0,0},
{0, IDM_P_NOUVEAU, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0,0},
{1, IDM_P_OUVRIR, TBSTATE_ENABLED, TBSTYLE_BUTTON,
0,0},
{2, IDM_P_ENREGISTRER, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0,0},
{0, 0, TBSTATE_ENABLED,
TBSTYLE_SEP, 0,0},
{108, 0, TBSTATE_ENABLED,
TBSTYLE_SEP, 0,0},
{3, IDM_P_INSERER, TBSTATE_ENABLED, TBSTYLE_BUTTON,
0,0},
{0, 0, TBSTATE_ENABLED,
TBSTYLE_SEP, 0,0},
{4, IDM_SEND_PROGRAMME, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0,0},
{5, IDM_V_PREVIEW, TBSTATE_ENABLED, TBSTYLE_BUTTON,
0,0},
};

// On crée la tollbar
hwndTBar = CreateWindowEx(0,
TOOLBARCLASSNAME,
(LPSTR) NULL,
WS_CHILD | TBSTYLE_TOOLTIPS |
_TRANSPARENT|TBSTYLE_FLAT,
0, 0, 0, 0, hWnd,
(HMENU) IDR_TOOLBAR,
hInst,
NULL);


SendMessage(hwndTBar , TB_BUTTONSTRUCTSIZE, (WPARAM) sizeof(TBBUTTON), 0);

SendMessage(hwndTBar , TB_ADDBUTTONS, (WPARAM) 10,
(LPARAM) (LPTBBUTTON) &g_rgTbButtons);

// Image list
HIMAGELIST hToolBarImagelist = ImageList_Create(20, 20,
ILC_COLOR8|ILC_MASK, 6, 0);

HBITMAP hToolBarbitmap = LoadBitmap(hInst, MAKEINTRESOURCE(IDR_TOOLBAR));

ImageList_AddMasked(hToolBarImagelist,hToolBarbitmap ,RGB(192,192,192));

// Set the image list.
SendMessage(hwndTBar, TB_SETIMAGELIST, 0, (LPARAM)hToolBarImagelist);

*******************

Je n'ai toujours pas de transparence avec une bitmap en 256 couleurs. Ca
marche bien si je suis en 16 couleurs.
Dans la doc , il est dit que ça marche avec des images en 8bpp.

Pourquoi est-ce que je n'arrive pas à avoir mes boutons transparents ?


Merci pour votre aide ,


Pendloup


"Christian ASTOR" a écrit dans le message de
news: 43a31222$0$11352$
Pendloup wrote:

Je m'embête avec des toolbar. J'ai refait les bitmaps en 256 couleurs.
Or je n'ai plus de transparence. Comment donc faire une Toolbar avec des
boutons transparents et en 256 couleurs ?



ImageList_AddMasked()


Avatar
Christian ASTOR
Pendloup wrote:

// Image list
HIMAGELIST hToolBarImagelist = ImageList_Create(20, 20,
ILC_COLOR8|ILC_MASK, 6, 0);

HBITMAP hToolBarbitmap = LoadBitmap(hInst, MAKEINTRESOURCE(IDR_TOOLBAR));

ImageList_AddMasked(hToolBarImagelist,hToolBarbitmap ,RGB(192,192,192));

// Set the image list.
SendMessage(hwndTBar, TB_SETIMAGELIST, 0, (LPARAM)hToolBarImagelist);



Ca marche très bien chez moi...
Je crée toujours le fond Magenta (rose) RGB(255, 0, 255), mais ça
revient au même...
En faisant copier-coller de ton code sur une bitmap :
http://img46.imagevenue.com/img.php?loc=loc249&image=th_385eb_Toolbar.jpg
ca donne :
http://img19.imagevenue.com/img.php?loc=loc76&imageŽb5b_Toolbar_transparent.jpg
Avatar
Pendloup
Bonsoir,

Puisque le code marche chez toi , il doit marcher chez moi, me suis- je
dis.
J'ai donc récupéré ta bitmap, modifier la couleur de mask dans mon
code,testé, et ça a marché. Bon j'ai repris ma bitmap dans paint afin de
peindre la découpe en Magenta, je teste et .... marche pas !.

Donc il y a un blême dans ma bitmap. Je file ça à un graphiste qui édite
les 2 dans un soft
plus soft, et la mystère, ma couleur Magenta n'est plus Magenta.

Bon je n'ai rien compris c'est un truc de graphiste, mais mon code marche
effectivement. Le pb vient de ma bitmap.

Merci beaucoup pour ton aide.

Cordialement,


Pendloup.


"Christian ASTOR" a écrit dans le message de
news: 43a72098$0$11351$
Pendloup wrote:

// Image list
HIMAGELIST hToolBarImagelist = ImageList_Create(20, 20,
ILC_COLOR8|ILC_MASK, 6, 0);

HBITMAP hToolBarbitmap = LoadBitmap(hInst,
MAKEINTRESOURCE(IDR_TOOLBAR));

ImageList_AddMasked(hToolBarImagelist,hToolBarbitmap
,RGB(192,192,192));

// Set the image list.
SendMessage(hwndTBar, TB_SETIMAGELIST, 0, (LPARAM)hToolBarImagelist);



Ca marche très bien chez moi...
Je crée toujours le fond Magenta (rose) RGB(255, 0, 255), mais ça revient
au même...
En faisant copier-coller de ton code sur une bitmap :
http://img46.imagevenue.com/img.php?loc=loc249&image=th_385eb_Toolbar.jpg
ca donne :
http://img19.imagevenue.com/img.php?loc=loc76&imageŽb5b_Toolbar_transparent.jpg