Установка списка изображений для
элементов дерева
Элемент управления "дерево" может
отображать два типа изображений: основное и
изображение состояния. Все они располагаются
слева от текста элемента. Для установки обычных
(не состояния) изображений, Вы должны
использовать функцию 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: Определение иконок для элементов
Как только список изображений связан с
"деревом", оно сразу отображает иконку слева
от текста. Место под картинку выделяется
автоматически. При добалении нового элемента
можно определить какое изображение надо
показывать рядом. В последствии его можно
изменить по своему усмотрению.
Источник: ProtoSphere
|