Иллюстрированный самоучитель по Visual Studio.Net


Список изображений, ассоциируемый с деревом - часть 3


Вернемся К функции OnlnitialUpdate. После строки m_Tree.SetlmageList... вставьте фрагмент, который задает форму дерева из трех узлов (или ветвей):

//====== Вставляем узел верхнего уровня иерархии

gtv.hParent = TVI_ROOT;

//====== Вставляем в конец списка

gtv.hlnsertAfter = TVI_LAST;

//====== Формат узла — два изображения и текст

gtv.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIFJTEXT;

//=== Индекс изображения для узла в обычном состоянии

gtv.item.iImage = 0;

//=== Индекс изображения для узла в выбранном состоянии

gtv.item.iSelectedlmage = 1;

//====== Текст, именующий узел

gtv.item.pszText = "First";

11====== Описатели трех ветвей

HTREEITEM hi, h2, h3;

//====== Вставка первого узла

hi = m_Tree.Insertltem(Sgtv);

//====== Первый узел будет родителем второго

gtv.hParent = h1;

//====== Атрибуты второго узла

gtv.item.iImage = 1;

gtv.item.pszText = "Second";

//====== Вставка второго узла

h2 = m_Tree.Insertltem(Sgtv);

//====== Второй, узел будет родителем третьего

gtv.hParent = h2;

gtv.item.ilmage = 2;

gtv.item.pszText = "Third";

//====== Вставка третьего узла

h3 = m_Tree.Insertltem(Sgtv);

Запустите приложение, и если вы не забыли создать bitmap-изображения, то они должны появиться слева от текстового ярлыка узла (рис. 5.1). Проанализируйте вложенность узлов дерева. Теперь замените в строке gtv.hParent = b2; b2 на b1и проверьте результат. Затем рекомендуем заменить b1 на константу TVI_ROOT и вновь посмотреть, что получится. Обратите внимание на то, что изображения изменяются при выборе узлов, то есть при переводе курсора мыши с одного узла на другой.

Рис. 5.1. Вид главного окна приложения Tree




Начало  Назад  Вперед