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


Элемент управления дерева состояний обзор

Каждый элемент управления " дерево " (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 overlay образа.

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

См. также

Ссылки

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

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

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