Bonjour,

Je galère un poil avec les images.
Le soucis : l'éditeur de VC++ ne sait pas gérer les bitmaps au dela d'une certaine taille : une bitmap contenant plus de 128 icones de 16 pixels de large.
Donc dans les ressources j'ai découpé en plusieurs bitmaps.

Initialement j'avais ce code :

----------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
  COLORREF crMask = RGB(255,0,255);
 
  CImageList* pList1 = new CImageList();
  pList1->Create(IDB_BITMAP1,16,1,crMask);
 
  CImageList List2;
  List2.Create(IDB_BITMAP2,16,1,crMask);
 
  for(int i=0; i<List2.GetImageCount();i++)
  {
     pList1->Add( List2.ExtractIcon(i) );
  }
...
----------------
Cela fonctionne, tous mes icones sont dispos dans mes controles (exemple CTreeCtrl). Mais .... le soucis est que ce code consomme beaucoup d'objets GDI (visible dans le TaskManager) : +2 à chaque transfert d'icones.
( Dans mon applis j'ai 500 icones ...en petite taille 16 pix et grande taille 32 pix ) .. on est à l'arrivé à 2 000 objets GDI une fois l'appli démarrée.

J'aimerai réduire ce nombre d'objets GDI par ce code qui compile (mais ne fonctionne pas).
----------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
  COLORREF crMask = RGB(255,0,255);
 
  CImageList* pList1 = new CImageList();
  pList1->Create(IDB_BITMAP1,16,1,crMask);
 
  CImageList List2;
  List2.Create(IDB_BITMAP2,16,1,crMask);
 
  int n = pList1->GetImageCount();
  pList1->SetImageCount( n + List2.GetImageCount());
 
  for(int i=0; i<List2.GetImageCount();i++)
  {
    pList1->Copy( n+i, &List2, i );
  }
----------------

Dans mes controles (CTreeCtrl par ex.) , les icones de IDB_BITMAP1 sont visibles .. mais pas ceux copiés depuis IDB_BITMAP2 (l'icone est blanche ou absente de la liste .. je ne sais pas).

J'ai l'impression que c'est un problème de couleur de fond ou de mask ... mais je galère à trouver. Quelqu'un à une idée ???
La prochaine fois pense à mettre la balise de code ,Merci Farscape