Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как правильно вставить иконки в дерево?


Автор: Gryphon 9.6.2006, 13:11
Код

CTreeCtrl* m_pTree;
m_pTree = &GetTreeCtrl(); //мы в CTreeView

CImageList ImageList;
ImageList.Create(16, 16, ILC_COLOR, 8, 8);

ImageList.Add(AfxGetApp()->LoadIcon(IDI_DIR));            //иконки 16x16
ImageList.Add(AfxGetApp()->LoadIcon(IDI_FUNCTION));

m_pTree->SetImageList(&ImageList, TVSIL_NORMAL);


А теперь вопрос: почему у m_pTree->InsertItem("строка"), m_pTree->InsertItem("строка", 0, 0) и m_pTree->InsertItem("строка", 1, 1) одинаковый эффект — места для иконок перед строкой есть, но иконки не подгружены? 

Автор: Earnest 9.6.2006, 14:35
А что, CImageList у тебя действительно так и определен - как автоматическая переменная?
Тогда именно поэтому - в дереве оказывается ссылка на разрушенный ImageList. 
ImageList при установке не копируется. Хранить и разрушать его - твоя задача. Сделай ImageList переменной класса (например, своего вью).
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)