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ß


Anmelden zum Antworten