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



         

Вставка элементов дерева


Вставка элементов в дерево выполняется при помощи макрокоманды TreeView_InsertItem , которая посылает органу управления Tree View сообщение TVM_INSERTITEM :

HTREEITEM TreeView_InsertItem( HWND hwnd, // идентификатор окна органа Tree View TV_INSERTSTRUCT lpis); // указатель на структуру TV_INSERTSTRUCT

Через параметр hwnd Этой макрокоманде необходимо передать идентификатор созданного органа управления Tree View, а через параметр lpis - адрес структуры типа TV_INSERTSTRUCT . Эта структура и указатель на нее определены так:

typedef struct _TV_INSERTSTRUCT { HTREEITEM hParent; // идентификатор родительского элемента HTREEITEM hInsertAfter; // идентификатор элемента, после // которого будет выполнена вставка TV_ITEM item; // информация о вставляемом элементе } TV_INSERTSTRUCT, FAR *LPTV_INSERTSTRUCT;

Если вставляется корневой элемент, поле hParent должно содержать значение TVI_ROOT или NULL. Если же вставляется вложенный элемент, в это поле необходимо записать идентификатор родительского элемента (т. е. элемента, расположенного выше по иерархии).

В поле hInsertAfter следует записать идентификатор элемента, после которого будет вставлен данный элемент или одно из следующих значений:

Значение Расположение вставляемого элемента
TVI_FIRST В начале списка
TVI_LAST В конце списка
TVI_SORT По алфавитному порядку

Структура item содержит информацию о вставляемом элементе. Соответствующий тип TV_ITEM определен следующим образом:

typedef struct _TV_ITEM { UINT mask // маска использования полей структуры TV_ITEM HTREEITEM hItem; // номер элемента UINT state; // текущее состояние элемента UINT stateMask; // маска состояния элемента LPSTR pszText; // адрес текстового буфера int cchTextMax; // размер текстового буфера int iImage; // номер изображения невыбранного элемента int iSelectedImage;// номер изображения выбранного элемента int cChildren; // флаг дочерних элементов LPARAM lParam;// 32-битное значение, связанное с элементом } TV_ITEM, FAR *LPTV_ITEM;

Назначение большинства полей такое же, как и одноименных полей структуры LV_ITEM.




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