bonjour
j'essaye d'améliorer les icônes des barres d'outils d'un logiciel, celles utilisées actuellement sont en 16 couleurs (4bits !). je voudrais passer en images 24 bits...
j'ai déjà réussi pour plusieurs éléments du programme (certaines barres de menu.. lorsque c'était codé en utilisant la fonction LoadBitmap) mais j'en ai qui sont codées différement (LoadDib), et j'arrive pas a lui faire manger du 24bits
là c'est la ligne qui charge le fichier bitmap: (tous les icones sont dans 1 seul bitmap, à découper par la suite)
Code :
- bmpPatterns = LoadDib(MAKEINTRESOURCE(IDB_PATTERNS));
|
avec bmpPatterns de type:
Code :
- LPMODPLUGDIB CMainFrame::bmpPatterns = NULL;
|
et la "définition du type MODPLUGDIB" (je suis pas sur de mes termes...)
Code :
- LPMODPLUGDIB LoadDib(LPCSTR lpszName)
- //-----------------------------------
- {
- HINSTANCE hInstance = AfxGetInstanceHandle();
- HRSRC hrsrc = FindResource(hInstance, lpszName, RT_BITMAP);
- HGLOBAL hglb = LoadResource(hInstance, hrsrc);
- LPBITMAPINFO p = (LPBITMAPINFO)LockResource(hglb);
- if (p)
- {
- LPMODPLUGDIB pmd = new MODPLUGDIB;
- pmd->bmiHeader = p->bmiHeader;
- for (int i=0; i<16; i++) pmd->bmiColors[i] = p->bmiColors[i];
- LPBYTE lpDibBits = (LPBYTE)p;
- lpDibBits += p->bmiHeader.biSize + 16 * sizeof(RGBQUAD);
- pmd->lpDibBits = lpDibBits;
- return pmd;
- } else return NULL;
- }
|
actuellement si je lui rentre une bitmap 24bits il m'affiche une image noire... savez-vous comment adapter ce code pour lui faire supporter plus de 16 couleurs ?