CTreeView Bitmaps ...
-
Bei einer Strukturansicht (Verweis auf heisst: pTree) kann man vor den
Text-Einträgen kleine Bitmaps voranstellen. Ich habe folgendes versucht:Bitmap bmp1, bmp2;
bmp1.LoadBitmap(<Pfad1>);
bmp2.loadBitmap(<Pfad2>);
CImageList iml;
iml.Create(15,16, ? ,2,2); // Create ist unklar, habe schon verschiedenes versucht.
iml.Add(&bmp1, (COLORREF) 0xFFFFFF);
iml.Add(&bmp2, (COLORREF) 0xFFFFFF);
pTree->SetImageList(&iml, TVSIL_NORMAL);...
tvinsert.item.image = 0;
tvinsert.item.iSelectedImage = 1;
tvinsert.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
...
Dabei erschienen an der Stelle der Bitmaps, weisse Flächen und keine
Bilder. Was mich noch interessiert ist das Ereignis TVN_SELCHANGED
Wenn ich einen Eintrag zum zweiten Mal anklicke (hintereinander),
wird TVN_SELCHANGED nicht ausgelöst. Was könnte man nehmen ?
-
Habe das Problem selber gelöst: iml muss auf den Heap also:
CImageList iml = new CImageList(); ...
-
Zumindestens sollte die Imageliste während der gesamten Lebenszeit der Baumansicht gültig sein. Du könntest sie auch als statische Variable in pTree einfügen.
-
Warum erstellst du nicht die CImageList als Member deiner Klasse, dann is die immer da und du brauchst dich um die aufräumarbeiten net zu kümmern.
Gruß