J'ai ajouté une icône dans le menu contextuel du système (le menu contextuel lorsque l'on clique avec le bouton droit de la souris sur un fichier/foler). Mais l'icône n'est pas transparente (en XP c'est pas remarqué, mais dans vista/win7 c'est clairement visible) il y a un fond blanc sous l'icône. Mais les icônes WinRAR ou TortoiseSVN n'ont pas d'arrière-plan blanc, elles sont transparentes.Menu contextuel du système Icône non transparente comme WinRAR
J'ai essayé le code C++ suivant:
#define BITMAP_MAIN 201 //in resource.h
BITMAP_MAIN BITMAP "main.bmp" // in .rc file
// showing icon in menu...
HBITMAP imgMain = LoadBitmap(aHinstance, MAKEINTRESOURCE(BITMAP_MAIN));
SetMenuItemBitmaps (hSubmenu, uMenuIndex, MF_BYPOSITION, imgMain, imgMain);
[main.bmp est 16X16]
- également l'icône (.bmp) n'est pas représenté entièrement dans OS non-anglais.
Y at-il une technique spéciale pour rendre l'icône dans le menu contextuel du système transparente comme WinRAR?
Comme vous pouvez le voir int la fonction SetMenuItemBitmaps ne prend que HBITMAP arguments de type. J'ai essayé de charger le fichier .ico et l'ai converti en HBITMAP, puis j'ai passé l'icône à cette fonction, mais cela n'a pas résolu le problème. En passant, je vais faire attention à accepter les réponses des gens la prochaine fois. Merci de me le faire savoir. – Samir