2010-11-29 2 views
0

J'essaie de créer une liste d'images à mon contrôle et de charger des images supplémentaires. Le problème est que seule l'image que je crée est utilisée et les images chargées ne sont pas affichées. Voici mon ccode:Problème lié au chargement de bitmaps dans CTreeCtrl

définissent IMAGE1 1

définissent IMAGE2 2

définissent image3 3

définissent image4 4

définissent Image5 5

m_Bitmap1.LoadBitmap(IDB_BITMAP1); 
m_Bitmap2.LoadBitmap(IDB_BITMAP2); 
m_Bitmap3.LoadBitmap(IDB_BITMAP3); 


m_ImageListTree = new CImageList; 
m_ImageListTree->Create(IDB_BITMAP1, 16, 1, RGB(255, 255, 255)); 
m_ImageListTree->Add(&m_Bitmap2, RGB(255, 255, 255)); 
m_ImageListTree->Add(&m_Bitmap3, RGB(255, 255, 255)); 


while(ItemTree != NULL) 
{ 
    BasicTree->SetItemImage(ItemTree, nCounter, nCounter); 
    ItemTree = BasicTree->GetNextItem(ItemTree, TVGN_CHILD); 
    nCounter++; 
} 

Le seul IDB_BITMAP1 est affiché dans tous les niveaux d'arbre. Des idées?

Répondre

0

En fait, je n'ai jamais été dans la boucle, car je n'ai pas reçu le HTRREITEM initial avant d'entrer dans la boucle.

Aussi la création de la liste dans le contrôle, initialise chaque nouvel élément avec le bitmap que vous utilisez pour la création. Vous pouvez définir l'image eitehr en insertion ou en alter, mais vous devez spécifier une image différente (pour l'insertion, vous devez définir un TVINSERTSTRUCTW et définir l'image avant d'insérer l'élément entier.)