Поделиться через


Общие сведения о состояниях элемента древовидного элемента управления

Каждый элемент в элементе управления дерева (CTreeCtrl) имеет текущее состояние. Например, элемент может быть выбран, запрещено, развернутый и т д В большинстве случаев элемент управления "Дерево" автоматически устанавливает состояние элемента, чтобы отразить действий пользователя, например выделение элемента. Однако можно задать состояние элемента с помощью функции-члена SetItemState и извлечь текущее состояние элемента с помощью функции-члена GetItemState. Полный список состояний элемента см. в разделе Константы элемента управления иерархического представления в Windows SDK.

Текущее состояние элемента определяется параметром nState. Элемент управления "Дерево" может изменить состояние элемента управления, чтобы отразить действий пользователя, например выбора элемента или установить фокус на элемент. Кроме того, приложение может изменить состояние элемента управления, чтобы отключить или скрыть элемент или определить образ перекрытия или изображение состояния.

При определении или изменить состояние элемента, параметр nStateMask указывает, что биты состояния к набору, а параметр nState содержат новые значения для этих битов. Например, в следующем примере изменяется текущее состояние родительского элемента ,определенное hParentItem) в объекте CTreeCtrl (m_treeCtrl) в TVIS_EXPANDPARTIAL:

TVITEM curItem;
HTREEITEM hParentItem;

hParentItem = m_TreeCtrl.GetSelectedItem();

//modify the parent item to keep the '+' sign
curItem.mask = TVIF_STATE | TVIF_HANDLE;
curItem.hItem = hParentItem;
curItem.state = TVIS_EXPANDPARTIAL;
curItem.stateMask = TVIS_EXPANDPARTIAL;
m_TreeCtrl.SetItem(&curItem);

Другой пример изменения состояния будет задать изображение перекрытия элементов. Для этого nStateMask должно включать TVIS_OVERLAYMASK значение и nState должно включать индекс единицы образа перекрытия сдвиганного налево 8 бит с помощью макроса INDEXTOOVERLAYMASK. Индекс может быть 0, чтобы не указывать какой-либо образ перекрытия. Изображение перекрытия необходимо добавить в список элемента управления "Дерево" образов перекрытия предыдущим вызовом функции CImageList::SetOverlayImage. Функция определяет индекс единицы образа для добавления; это индекс, используемый с макросом INDEXTOOVERLAYMASK. Элемент управления "Дерево" может содержать до 4 накладываться на образа.

Чтобы задать изображение состояния элемента, nStateMask должно включать TVIS_STATEIMAGEMASK значение и nState должно включать индекс единицы бит 12 состояния сдвиганных образом левого с помощью макроса INDEXTOSTATEIMAGEMASK. Индекс может быть 0, чтобы не указывать ни один изображение состояния. Изображений состояния и перекрытия Дополнительные сведения о см. в разделе Списки изображений элемента управления "Дерево".

См. также

Ссылки

Использование CTreeCtrl

Основные понятия

Элементы управления (MFC)