Операционная система Windows 95 для программиста



         

Вставка элементов дерева - часть 2


Поле маски mask определяет, какие из полей структуры TV_ITEM будут использованы при добавлении элементов. Возможны следующие значения масок (их можно объединять при помощи логической операции ИЛИ):

Маска Заполненное поле структуры TV_ITEM
TVIF_TEXT pszText
TVIF_IMAGE iImage
TVIF_SELECTEDIMAGE iSelectedImage
TVIF_PARAM lParam
TVIF_CHILDREN cChildren
TVIF_HANDLE hItem
TVIF_STATE state

В поля iImage и iSelectedImage следует записать номера изображений из списка, которые будут использованы для элемента, соответственно, в выбранном и невыбранном состоянии.

Поле cChildren содержит флаг, который показывает, есть ли у данного элемента связанные с ним дочерние элементы. Если есть, то в этом поле должно быть записано значение 1, в противном случае - 0. Если же в поле cChildren записать значение I_CHILDRENCALLBACK, приложение должно обрабатывать извещения TVN_GETDISPINFO и TVN_SETDISPINFO (аналогичные извещениям LVN_GETDISPINFO и LVN_SETDISPINFO, которые посылаются органу управления List View).

Для удобства в приложении Some Books мы добавляем элементы дерева при помощи функции InsTreeItem, исходный текст которой приведен ниже:

HTREEITEM InsTreeItem(HTREEITEM hParent, LPSTR szText, HTREEITEM hAfter, int iImage, int iSelectedImage) { TV_INSERTSTRUCT tvins; HTREEITEM hItem;

memset(&tvins, 0, sizeof(tvins)); tvins.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM; tvins.item.pszText = szText; tvins.item.cchTextMax = lstrlen(szText); tvins.item.iImage = iImage; tvins.item.iSelectedImage = iSelectedImage; tvins.hInsertAfter = hAfter; tvins.hParent = hParent;

hItem = TreeView_InsertItem(hwndTree, &tvins); return hItem; }

Процедура заполнения дерева в приложении Some Books выглядит следующим образом.

Вначале мы вставляем корневой элемент, которому соответствует строка szBooks ("Книги издательства АО 'Диалог-МИФИ'"):

hItem = InsTreeItem((HTREEITEM)TVI_ROOT, szBooks, (HTREEITEM)TVI_FIRST, idxBooks, idxBooks);




Содержание  Назад  Вперед