Элемент управления "дерево" может отображать два типа изображений: основное и изображение состояния. Все они располагаются слева от текста элемента. Для установки обычных (не состояния) изображений, Вы должны использовать функцию SetImageList(), которая принимает в качестве аргумента указатель на список изображений. Можно создать список из одной картинки или добавлять в него отдельные иконки.
Шаг 1: Создание картинки
Добавить картинку, которая содержит все необходимые иконки, в редакторе ресурсов. В примере индивидуальный размер икноки равен 13x13, однако Вы можете выбрать другие параметры высоты и ширины.
Шаг 2: Добавление член-переменной списка изображений
Член-переменная обычно добавляется в класс ответственный за установку "дерева". Это как правило CView или CDialog производная. Вы также можете добавить ее наследника CTreeView, что очень удобно и я всячески рекомендую делать именно так. class CTreeCtrlX : public CTreeCtrl { // Construction public: CTreeCtrlX();
// Attributes public: CImageList m_image ; }
Шаг 3: Создание и установка списка изображений
Вызываем метод Create() объекта изображений вместе с идентификотором ресурса изображения, которое мы создали в Шаге 1, и шириной каждой иконки. Высота по умолчанию устанавливается равной высоте изображения. Третий аргумент передаваемый Create() указывает на число изображений в списке. Последний аргумент - цвет маски, с помощью которого можно задать прозрачный фон для нашего списка. m_tree.m_image.Create( IDB_OUTLINE, 13, 1, RGB(255,255,255) ); m_tree.SetImageList( &(m_tree.m_image), TVSIL_NORMAL );
Шаг 4: Определение иконок для элементов
Как только список изображений связан с "деревом", оно сразу отображает иконку слева от текста. Место под картинку выделяется автоматически. При добалении нового элемента можно определить какое изображение надо показывать рядом. В последствии его можно изменить по своему усмотрению. |