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


Класс CTreeCtrl

Предоставляет функциональные возможности стандартного элемента управления "представление в виде дерева" Windows.

Синтаксис

class CTreeCtrl : public CWnd

Участники

Открытые конструкторы

Имя Описание
CTreeCtrl::CTreeCtrl Формирует объект CTreeCtrl.

Открытые методы

Имя Описание
CTreeCtrl::Create Создает элемент управления представления дерева и присоединяет его к объекту CTreeCtrl .
CTreeCtrl::CreateDragImage Создает перетаскивание растрового изображения для указанного элемента представления дерева.
CTreeCtrl::CreateEx Создает элемент управления "Дерево" с указанными расширенными стилями Windows и присоединяет его к объекту CTreeCtrl .
CTreeCtrl::DeleteAllItems Удаляет все элементы в элементе управления представлением дерева.
CTreeCtrl::DeleteItem Удаляет новый элемент в элементе управления представлением дерева.
CTreeCtrl::EditLabel Изменяет указанный элемент представления дерева на месте.
CTreeCtrl::EndEditLabelNow Отменяет операцию редактирования для метки элемента представления дерева в текущем элементе управления "Представление дерева".
CTreeCtrl::EnsureVisible Гарантирует, что элемент представления дерева отображается в элементе управления представлением дерева.
CTreeCtrl::Expand Разворачивает или сворачивает дочерние элементы указанного элемента представления дерева.
CTreeCtrl::GetBkColor Извлекает текущий цвет фона элемента управления.
CTreeCtrl::GetCheck Извлекает проверка состояние элемента управления "Дерево".
CTreeCtrl::GetChildItem Извлекает дочерний элемент указанного элемента представления дерева.
CTreeCtrl::GetCount Извлекает количество элементов дерева, связанных с элементом управления представлением дерева.
CTreeCtrl::GetDropHilightItem Извлекает целевой объект операции перетаскивания.
CTreeCtrl::GetEditControl Извлекает дескриптор элемента управления редактирования, используемого для изменения указанного элемента представления дерева.
CTreeCtrl::GetExtendedStyle Извлекает расширенные стили, которые использует текущий элемент управления "Представление дерева".
CTreeCtrl::GetFirstVisibleItem Извлекает первый видимый элемент указанного элемента представления дерева.
CTreeCtrl::GetImageList Извлекает дескриптор списка изображений, связанного с элементом управления представлением дерева.
CTreeCtrl::GetIndent Извлекает смещение (в пикселях) элемента представления дерева из родительского элемента.
CTreeCtrl::GetInsertMarkColor Извлекает цвет, используемый для рисования метки вставки для представления дерева.
CTreeCtrl::GetItem Извлекает атрибуты указанного элемента представления дерева.
CTreeCtrl::GetItemData Возвращает значение для конкретного приложения, связанное с элементом.
CTreeCtrl::GetItemExpandedImageIndex Извлекает индекс изображения, отображаемого, когда указанный элемент текущего элемента управления "Представление дерева" находится в развернутом состоянии.
CTreeCtrl::GetItemHeight Извлекает текущую высоту элементов представления дерева.
CTreeCtrl::GetItemImage Извлекает изображения, связанные с элементом.
CTreeCtrl::GetItemPartRect Извлекает ограничивающий прямоугольник для указанной части указанного элемента в текущем элементе управления представления дерева.
CTreeCtrl::GetItemRect Извлекает ограничивающий прямоугольник элемента представления дерева.
CTreeCtrl::GetItemState Возвращает состояние элемента.
CTreeCtrl::GetItemStateEx Извлекает расширенное состояние указанного элемента в текущем элементе управления представлением дерева.
CTreeCtrl::GetItemText Возвращает текст элемента.
CTreeCtrl::GetLastVisibleItem Извлекает последний развернутый элемент в текущем элементе управления "Представление дерева".
CTreeCtrl::GetLineColor Извлекает текущий цвет линии для элемента управления представлением дерева.
CTreeCtrl::GetNextItem Извлекает следующий элемент представления дерева, соответствующий указанной связи.
CTreeCtrl::GetNextSiblingItem Извлекает следующий брат указанного элемента представления дерева.
CTreeCtrl::GetNextVisibleItem Извлекает следующий видимый элемент указанного элемента представления дерева.
CTreeCtrl::GetParentItem Извлекает родительский элемент указанного элемента представления дерева.
CTreeCtrl::GetPrevSiblingItem Извлекает предыдущий брат указанного элемента представления дерева.
CTreeCtrl::GetPrevVisibleItem Извлекает предыдущий видимый элемент указанного элемента представления дерева.
CTreeCtrl::GetRootItem Извлекает корень указанного элемента представления дерева.
CTreeCtrl::GetScrollTime Извлекает максимальное время прокрутки для элемента управления представлением дерева.
CTreeCtrl::GetSelectedCount Извлекает количество выбранных элементов в текущем элементе управления "Представление дерева".
CTreeCtrl::GetSelectedItem Извлекает выбранный элемент представления дерева.
CTreeCtrl::GetTextColor Извлекает текущий цвет текста элемента управления.
CTreeCtrl::GetToolTips Извлекает дескриптор дочернего ToolTip элемента управления, используемого элементом управления представлением дерева.
CTreeCtrl::GetVisibleCount Извлекает количество видимых элементов дерева, связанных с элементом управления представлением дерева.
CTreeCtrl::HitTest Возвращает текущую позицию курсора, связанного CTreeCtrl с объектом.
CTreeCtrl::InsertItem Вставляет новый элемент в элемент управления представлением дерева.
CTreeCtrl::ItemHasChildren Возвращает ненулевое значение, если указанный элемент содержит дочерние элементы.
CTreeCtrl::MapAccIdToItem Карты указанный идентификатор специальных возможностей для дескриптора в элементе представления дерева в текущем элементе управления "Представление дерева".
CTreeCtrl::MapItemToAccID Карты указанный дескриптор элементу представления дерева в текущем элементе управления "Представление дерева" идентификатору специальных возможностей.
CTreeCtrl::Select Выбирает, прокручивается в представление или перерисовывает указанный элемент представления дерева.
CTreeCtrl::SelectDropTarget Перерисовывает элемент дерева в качестве целевого объекта операции перетаскивания.
CTreeCtrl::SelectItem Выбирает указанный элемент представления дерева.
CTreeCtrl::SelectSetFirstVisible Выбирает указанный элемент представления дерева в качестве первого видимого элемента.
CTreeCtrl::SetAutoscrollInfo Задает скорость автообнаполнения текущего элемента управления "Представление дерева".
CTreeCtrl::SetBkColor Задает цвет фона элемента управления.
CTreeCtrl::SetCheck Задает проверка состояние элемента управления "Дерево".
CTreeCtrl::SetExtendedStyle Задает расширенные стили для текущего элемента управления "Представление дерева".
CTreeCtrl::SetImageList Задает дескриптор списка изображений, связанного с элементом управления представлением дерева.
CTreeCtrl::SetIndent Задает смещение (в пикселях) элемента представления дерева из родительского элемента.
CTreeCtrl::SetInsertMark Задает метку вставки в элементе управления представлением дерева.
CTreeCtrl::SetInsertMarkColor Задает цвет, используемый для рисования метки вставки для представления дерева.
CTreeCtrl::SetItem Задает атрибуты указанного элемента представления дерева.
CTreeCtrl::SetItemData Задает значение для конкретного приложения, связанное с элементом.
CTreeCtrl::SetItemExpandedImageIndex Задает индекс изображения для отображения, когда указанный элемент текущего элемента управления "Представление дерева" находится в развернутом состоянии.
CTreeCtrl::SetItemHeight Задает высоту элементов представления дерева.
CTreeCtrl::SetItemImage Связывает изображения с элементом.
CTreeCtrl::SetItemState Задает состояние элемента.
CTreeCtrl::SetItemStateEx Задает расширенное состояние указанного элемента в текущем элементе управления "Представление дерева".
CTreeCtrl::SetItemText Задает текст элемента.
CTreeCtrl::SetLineColor Задает текущий цвет линии для элемента управления представлением дерева.
CTreeCtrl::SetScrollTime Задает максимальное время прокрутки для элемента управления представлением дерева.
CTreeCtrl::SetTextColor Задает цвет текста элемента управления.
CTreeCtrl::SetToolTips Задает дочерний ToolTip элемент управления представления дерева.
CTreeCtrl::ShowInfoTip Отображает подсказку для указанного элемента в текущем элементе управления представления дерева.
CTreeCtrl::SortChildren Сортирует дочерние элементы заданного родительского элемента.
CTreeCtrl::SortChildrenCB Сортирует дочерние элементы заданного родительского элемента с помощью функции сортировки, определяемой приложением.

Замечания

Элемент управления "представление дерева" — это окно, в котором отображается иерархический список элементов, таких как заголовки в документе, записи в индексе или файлы и каталоги на диске. Каждый элемент состоит из метки и необязательного битового изображения, и каждый элемент может иметь список вложенных элементов, связанных с ним. Щелкнув элемент, пользователь может развернуть и свернуть связанный список вложенных элементов.

Этот элемент управления (и, следовательно CTreeCtrl , класс) доступен только для программ под управлением Windows 98 и Windows NT версии 4 и более поздних версий.

Дополнительные сведения об использовании CTreeCtrlсм. в следующей статье:

Иерархия наследования

CObject

CCmdTarget

CWnd

CTreeCtrl

Требования

Заголовок.afxcmn.h

CTreeCtrl::Create

Если вы указываете элемент управления "Дерево" в шаблоне диалогового окна или используете CTreeView, элемент управления деревом создается автоматически при создании диалогового окна или представления.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Параметры

dwStyle
Задает стиль элемента управления представлением дерева. Примените стили окон, описанные в CreateWindowразделе и любое сочетание стилей элементов управления представлением дерева, как описано в пакете SDK для Windows.

rect
Указывает размер и положение элемента управления представлением дерева. Это может быть CRect объект или RECT структура.

pParentWnd
Указывает родительское окно элемента управления представлением дерева, как правило, .CDialog Это не должно быть NULL.

nID
Указывает идентификатор элемента управления представления дерева.

Возвращаемое значение

Ненулевое значение, если инициализация была успешной; в противном случае — 0.

Замечания

Если вы хотите создать элемент управления "Дерево" в качестве дочернего окна другого окна, используйте функцию-член Create . При создании элемента управления "Дерево" Createнеобходимо передать его WS_VISIBLEв дополнение к другим стилям представления дерева.

Вы создаете два CTreeCtrl шага. Сначала вызовите конструктор, а затем вызовите Createэлемент управления представлением дерева и прикрепить его к объекту CTreeCtrl .

Чтобы создать элемент управления деревом с расширенными стилями окон, вызовите CreateEx вместо Createнего.

Пример

// Assuming your window has a CTreeCtrl member named m_TreeCtrl,
// you can create the tree control window with a child ID of ID_MYTREE
// using a call like this:

m_TreeCtrl.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER |
                      TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES |
                      TVS_DISABLEDRAGDROP | TVS_NOTOOLTIPS | TVS_EDITLABELS,
                  CRect(10, 10, 300, 100), this, ID_MYTREE);

// The control will have the appropriate window styles, and the tree
// control styles specified are those most commonly used.

CTreeCtrl::CreateEx

Вызовите эту функцию, чтобы создать элемент управления (дочернее окно) и связать его с CTreeCtrl объектом.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Параметры

dwExStyle
Задает расширенный стиль создаваемого элемента управления. Список расширенных стилей Windows см dwExStyle . в параметре CreateWindowEx пакета SDK для Windows.

dwStyle
Задает стиль элемента управления представлением дерева. Примените стили окон, описанные в CreateWindowразделе и любое сочетание стилей элементов управления представлением дерева, как описано в пакете SDK для Windows.

rect
Ссылка на RECT структуру, описывающую размер и положение создаваемого окна в координатах pParentWndклиента.

pParentWnd
Указатель на окно, которое является родительским элементом элемента управления.

nID
Идентификатор дочернего окна элемента управления.

Возвращаемое значение

Ненулевое значение в противном случае — значение 0.

Замечания

Используйте CreateEx вместо Create применения расширенных стилей Windows, указанных предисловием WS_EX_расширенного стиля Windows.

CTreeCtrl::CreateDragImage

Вызовите эту функцию, чтобы создать перетаскивание растрового изображения для заданного элемента в элементе управления представлением дерева, создать список изображений для растрового изображения и добавить растровое изображение в список изображений.

CImageList* CreateDragImage(HTREEITEM hItem);

Параметры

hItem
Дескриптор перетаскиваемого элемента дерева.

Возвращаемое значение

Указатель на список изображений, к которому добавлена перетаскиваемая растровая карта, при успешном выполнении; в противном случае NULL.

Замечания

Приложение использует функции списка изображений для отображения изображения при перетаскивании элемента.

Объект CImageList является постоянным, и его необходимо удалить после завершения. Например:

HTREEITEM hItem = m_TreeCtrl.GetSelectedItem();

CImageList *pImageList = m_TreeCtrl.CreateDragImage(hItem);

// Do something with the image list.

delete pImageList;

CTreeCtrl::CTreeCtrl

Формирует объект CTreeCtrl.

CTreeCtrl();

CTreeCtrl::DeleteAllItems

Вызовите эту функцию, чтобы удалить все элементы из элемента управления представлением дерева.

BOOL DeleteAllItems();

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Пример

// The underlying Windows API always returns TRUE
VERIFY(m_TreeCtrl.DeleteAllItems());

CTreeCtrl::DeleteItem

Вызовите эту функцию, чтобы удалить элемент из элемента управления представлением дерева.

BOOL DeleteItem(HTREEITEM hItem);

Параметры

hItem
Дескриптор элемента дерева, который необходимо удалить. Если hitem имеет TVI_ROOT значение, все элементы удаляются из элемента управления представлением дерева.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Пример

// Look at all of the root-level items
HTREEITEM hCurrent = m_TreeCtrl.GetChildItem(TVI_ROOT);
while (hCurrent != NULL)
{
   // Get the text for the item. Notice we use TVIF_TEXT because
   // we want to retrieve only the text, but also specify TVIF_HANDLE
   // because we're getting the item by its handle.
   TVITEM item;
   TCHAR szText[1024];
   item.hItem = hCurrent;
   item.mask = TVIF_TEXT | TVIF_HANDLE;
   item.pszText = szText;
   item.cchTextMax = 1024;

   BOOL bWorked = m_TreeCtrl.GetItem(&item);

   // Try to get the next item
   hCurrent = m_TreeCtrl.GetNextItem(hCurrent, TVGN_NEXT);

   // If we successfuly retrieved an item, and the item's text
   // contains a lowercase letter 'e', delete the item.
   if (bWorked && _tcschr(item.pszText, 'e'))
      m_TreeCtrl.DeleteItem(item.hItem);
}

CTreeCtrl::EditLabel

Вызовите эту функцию, чтобы начать редактирование текста указанного элемента на месте.

CEdit* EditLabel(HTREEITEM hItem);

Параметры

hItem
Дескриптор редактируемого элемента дерева.

Возвращаемое значение

В случае успешного CEdit выполнения указатель на объект, используемый для изменения текста элемента; в противном случае NULL.

Замечания

Редактирование выполняется путем замены текста элемента однимстрочного элемента элементом управления редактирования, содержащего текст.

Пример

// Make sure the focus is set to the tree control.
m_TreeCtrl.SetFocus();

// Show the edit control on the label of the selected item.
// The tree control must have the TVS_EDITLABELS style set.
HTREEITEM hSel = m_TreeCtrl.GetSelectedItem();
CEdit *pmyEdit = m_TreeCtrl.EditLabel(hSel);
ASSERT(pmyEdit != NULL);

CTreeCtrl::EndEditLabelNow

Завершает операцию редактирования метки элемента представления дерева в текущем элементе управления "Представление дерева".

BOOL EndEditLabelNow(BOOL fCancelWithoutSave);

Параметры

fCancelWithoutSave
[in] TRUE чтобы не карта изменить элемент представления дерева перед завершением операции редактирования или FALSE сохранить изменения в элементе представления дерева перед завершением операции.

Возвращаемое значение

TRUE Значение , если этот метод выполнен успешно; FALSEв противном случае .

Замечания

Этот метод отправляет TVM_ENDEDITLABELNOW сообщение, описанное в пакете SDK для Windows.

CTreeCtrl::EnsureVisible

Вызовите эту функцию, чтобы убедиться, что элемент представления дерева отображается.

BOOL EnsureVisible(HTREEITEM hItem);

Параметры

hItem
Дескриптор элемента дерева, который отображается.

Возвращаемое значение

Возвращает, TRUE если система прокрутила элементы в элементе управления "Дерево-представление", чтобы убедиться, что указанный элемент отображается. В противном случае возвращаемое значение равно FALSE.

Замечания

При необходимости функция расширяет родительский элемент или прокручивает элемент управления представлением дерева, чтобы элемент был видимым.

Пример

HTREEITEM hItem = m_TreeCtrl.GetSelectedItem();
// hmyItem is the item that I want to ensure is visible.
HTREEITEM hmyItem = m_TreeCtrl.GetChildItem(hItem);

// Expand the parent, if possible.
HTREEITEM hParent = m_TreeCtrl.GetParentItem(hmyItem);
if (hParent != NULL)
   m_TreeCtrl.Expand(hParent, TVE_EXPAND);

// Ensure the item is visible.
m_TreeCtrl.EnsureVisible(hmyItem);

CTreeCtrl::Expand

Вызовите эту функцию, чтобы развернуть или свернуть список дочерних элементов, если таковые есть, связанные с заданным родительским элементом.

BOOL Expand(
    HTREEITEM hItem,
    UINT nCode);

Параметры

hItem
Дескриптор развернутого элемента дерева.

nCode
Флаг, указывающий тип выполняемого действия. Этот флаг может иметь одно из следующих значений:

  • TVE_COLLAPSE Свернуть список.

  • TVE_COLLAPSERESET Свернет список и удаляет дочерние элементы. Флаг TVIS_EXPANDEDONCE состояния сбрасывается. Этот флаг должен использоваться с флагом TVE_COLLAPSE .

  • TVE_EXPAND Расширяет список.

  • TVE_TOGGLE Свертывает список, если он в настоящее время развернут или расширяет его, если он в настоящее время свернут.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Пример

Пример см. в примере CTreeCtrl::EnsureVisible.

CTreeCtrl::GetBkColor

Эта функция-член реализует поведение сообщения TVM_GETBKCOLORWin32, как описано в пакете SDK для Windows.

COLORREF GetBkColor() const;

Возвращаемое значение

Значение COLORREF , представляющее текущий цвет фона окна для элемента управления. Если это значение равно -1, элемент управления использует цвет системного окна. В этом случае можно использовать ::GetSysColor(COLOR_WINDOW) для получения текущего системного цвета, который использует элемент управления.

Пример

Пример см. в примере CTreeCtrl::SetTextColor.

CTreeCtrl::GetCheck

Вызовите эту функцию-член, чтобы получить состояние проверка элемента.

BOOL GetCheck(HTREEITEM hItem) const;

Параметры

hItem
Сведения HTREEITEM о том, что нужно получить сведения о состоянии.

Возвращаемое значение

Ненулевое значение, если элемент управления деревом проверка; в противном случае — значение 0.

Пример

Пример см. в примере CTreeCtrl::SetCheck.

CTreeCtrl::GetChildItem

Вызовите эту функцию, чтобы получить элемент представления дерева, который является дочерним элементом элемента, указанного в hItem.

HTREEITEM GetChildItem(HTREEITEM hItem) const;

Параметры

hItem
Дескриптор элемента дерева.

Возвращаемое значение

Дескриптор дочернего элемента в случае успешного выполнения; в противном случае NULL.

Пример

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Delete all of the children of hmyItem.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
   HTREEITEM hNextItem;
   HTREEITEM hChildItem = m_TreeCtrl.GetChildItem(hmyItem);

   while (hChildItem != NULL)
   {
      hNextItem = m_TreeCtrl.GetNextItem(hChildItem, TVGN_NEXT);
      m_TreeCtrl.DeleteItem(hChildItem);
      hChildItem = hNextItem;
   }
}

CTreeCtrl::GetCount

Вызовите эту функцию, чтобы получить количество элементов в элементе управления представлением дерева.

UINT GetCount() const;

Возвращаемое значение

Количество элементов в элементе управления представлением дерева.

Пример

// Delete all of the items from the tree control.
m_TreeCtrl.DeleteAllItems();
ASSERT(m_TreeCtrl.GetCount() == 0);

CTreeCtrl::GetDropHilightItem

Вызовите эту функцию, чтобы получить элемент, который является целью операции перетаскивания.

HTREEITEM GetDropHilightItem() const;

Возвращаемое значение

Дескриптор элемента удален при успешном выполнении; в противном случае NULL.

Пример

// Set the item at the point myPoint as the drop target.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SelectDropTarget(hItem);
   ASSERT(m_TreeCtrl.GetDropHilightItem() == hItem);
}

CTreeCtrl::GetEditControl

Вызовите эту функцию, чтобы получить дескриптор элемента управления редактирования, используемого для изменения текста элемента представления дерева.

CEdit* GetEditControl() const;

Возвращаемое значение

Указатель на элемент управления редактирования, используемый для изменения текста элемента, в случае успешного выполнения; в противном случае NULL.

Пример

// The string replacing the text in the edit control.
LPCTSTR lpszmyString = _T("New text!");

// Replace the text in the label edit control, if possible.
CEdit *pEdit = m_TreeCtrl.GetEditControl();

if (pEdit != NULL)
{
   pEdit->SetWindowText(lpszmyString);
}

CTreeCtrl::GetExtendedStyle

Извлекает расширенные стили, которые использует текущий элемент управления "Представление дерева".

DWORD GetExtendedStyle() const;

Возвращаемое значение

Значение, содержащее побитовое сочетание (OR) расширенного стиля элемента управления "Дерево- представление". Дополнительные сведения см. в разделе "Расширенные стили элементов управления "Представление дерева".

Замечания

Этот метод отправляет TVM_GETEXTENDEDSTYLE сообщение, описанное в пакете SDK для Windows.

CTreeCtrl::GetFirstVisibleItem

Вызовите эту функцию, чтобы получить первый видимый элемент элемента управления представлением дерева.

HTREEITEM GetFirstVisibleItem() const;

Возвращаемое значение

Дескриптор первого видимого элемента; в противном случае NULL.

Пример

Пример см. в примере CTreeCtrl::SetCheck.

CTreeCtrl::GetImageList

Вызовите эту функцию, чтобы получить дескриптор обычного или списка изображений состояния, связанного с элементом управления представлением дерева.

CImageList* GetImageList(UINT nImageList) const;

Параметры

nImageList
Тип извлекаемого списка изображений. Список изображений может быть одним из следующих значений:

  • TVSIL_NORMAL Извлекает обычный список изображений, содержащий выбранные и неизбираемые изображения для элемента представления дерева.

  • TVSIL_STATE Извлекает список изображений состояния, содержащий изображения для элементов представления дерева, которые находятся в пользовательском состоянии.

Возвращаемое значение

Указатель на список изображений элемента управления в случае успешного выполнения; в противном случае NULL.

Замечания

Каждый элемент в элементе управления представлением дерева может иметь пару битовых изображений, связанных с ним. Одно изображение отображается при выборе элемента, а другой отображается, когда элемент не выбран. Например, элемент может отображать открытую папку при выборе и закрытую папку, если она не выбрана.

Дополнительные сведения о списках изображений см. в CImageList классе.

Пример

ASSERT(m_TreeCtrl.GetImageList(TVSIL_NORMAL) == NULL);

m_TreeCtrl.SetImageList(&m_TreeImages, TVSIL_NORMAL);
ASSERT(m_TreeCtrl.GetImageList(TVSIL_NORMAL) == &m_TreeImages);

CTreeCtrl::GetIndent

Вызовите эту функцию, чтобы получить объем в пикселях, которые дочерние элементы отступят относительно их родительских элементов.

UINT GetIndent() const;

Возвращаемое значение

Объем отступа, измеряемого в пикселях.

Пример

// Double the indent.
UINT uIndent = m_TreeCtrl.GetIndent();
m_TreeCtrl.SetIndent(2 * uIndent);

CTreeCtrl::GetInsertMarkColor

Эта функция-член реализует поведение сообщения TVM_GETINSERTMARKCOLORWin32, как описано в пакете SDK для Windows.

COLORREF GetInsertMarkColor() const;

Возвращаемое значение

Значение COLORREF , содержащее текущий цвет метки вставки.

Пример

// Use the highliight color for the insert mark color.
COLORREF crColor = ::GetSysColor(COLOR_HIGHLIGHT);
m_TreeCtrl.SetInsertMarkColor(crColor);
ASSERT(m_TreeCtrl.GetInsertMarkColor() == crColor);

CTreeCtrl::GetItem

Вызовите эту функцию, чтобы получить атрибуты указанного элемента представления дерева.

BOOL GetItem(TVITEM* pItem) const;

Параметры

pItem
Указатель на TVITEM структуру, как описано в пакете SDK для Windows.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Пример

Пример см. в примере CTreeCtrl::DeleteItem.

CTreeCtrl::GetItemData

Вызовите эту функцию, чтобы получить значение для конкретного приложения, связанное с указанным элементом.

DWORD_PTR GetItemData(HTREEITEM hItem) const;

Параметры

hItem
Дескриптор элемента, данные которого необходимо извлечь.

Возвращаемое значение

Значение, связанное с элементом, указанным в hItemуказателе.

Пример

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Delete all of the children of hmyItem whose item data is
// not equal to zero.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
   HTREEITEM hNextItem;
   HTREEITEM hChildItem = m_TreeCtrl.GetChildItem(hmyItem);

   while (hChildItem != NULL)
   {
      hNextItem = m_TreeCtrl.GetNextItem(hChildItem, TVGN_NEXT);

      if (m_TreeCtrl.GetItemData(hChildItem) != 0)
      {
         m_TreeCtrl.DeleteItem(hChildItem);
      }

      hChildItem = hNextItem;
   }
}

CTreeCtrl::GetItemExpandedImageIndex

Извлекает индекс изображения, отображаемого, когда указанный элемент текущего элемента управления "Представление дерева" находится в развернутом состоянии.

int GetItemExpandedImageIndex(HTREEITEM hItem)const;

Параметры

hItem
[in] Обработка элемента управления "Представление дерева".

Возвращаемое значение

Индекс изображения, отображаемого, когда указанный элемент находится в развернутом состоянии.

Замечания

Этот метод отправляет TVM_GETITEM сообщение, описанное в пакете SDK для Windows. Это сообщение возвращает TVITEMEX структуру, описывающую элемент управления "Представление дерева", а затем этот метод извлекает iExpandedImage элемент из этой структуры.

CTreeCtrl::GetItemHeight

Эта функция-член реализует поведение сообщения TVM_GETITEMHEIGHTWin32, как описано в пакете SDK для Windows.

SHORT GetItemHeight() const;

Возвращаемое значение

Высота элемента в пикселях.

Пример

// Double the height of the items.
SHORT sHeight = m_TreeCtrl.GetItemHeight();
m_TreeCtrl.SetItemHeight(2 * sHeight);

CTreeCtrl::GetItemImage

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

BOOL GetItemImage(
    HTREEITEM hItem,
    int& nImage,
    int& nSelectedImage) const;

Параметры

hItem
Дескриптор элемента, изображение которого требуется извлечь.

nImage
Целое число, которое получает индекс изображения элемента в списке изображений в виде дерева.

nSelectedImage
Целое число, которое получает индекс выбранного изображения элемента в списке изображений элемента представления дерева.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Изображения отображаются слева от метки элемента. Одно изображение отображается при выборе элемента, а другой отображается, когда элемент не выбран. Например, элемент может отображать открытую папку при выборе и закрытую папку, если она не выбрана.

Вызовите эту функцию, чтобы получить индекс изображения элемента и его выбранное изображение в списке изображений элемента управления представлением дерева.

Пример

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// If the selected image is the same as the nonselected image
// then make the selected image one more than the nonselected image.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
   HTREEITEM hItem = m_TreeCtrl.GetChildItem(hmyItem);
   int nImage, nSelectedImage;

   while (hItem != NULL)
   {
      m_TreeCtrl.GetItemImage(hItem, nImage, nSelectedImage);

      if (nImage == nSelectedImage)
      {
         m_TreeCtrl.SetItemImage(hItem, nImage, nImage + 1);
      }

      hItem = m_TreeCtrl.GetNextSiblingItem(hItem);
   }
}

CTreeCtrl::GetItemPartRect

Извлекает ограничивающий прямоугольник для указанной части указанного элемента в текущем элементе управления представления дерева.

BOOL GetItemPartRect(
    HTREEITEM hItem,
    int nPart,
    LPRECT lpRect)const;

Параметры

hItem
[in] Обработка элемента управления "Представление дерева".

nPart
[in] Идентификатор части. Должен иметь значениеTVGIPR_BUTTON.

lpRect
[out] Указатель на структуру RECT . Если этот метод выполнен успешно, структура получает координаты прямоугольника части, указанной hItem и nPart.

Возвращаемое значение

TRUE Значение , если этот метод выполнен успешно; FALSEв противном случае .

Замечания

Каждый элемент управления деревом привязан прямоугольником графики. Всякий раз, когда точка в этом прямоугольнике щелкается, элемент, как сообщается, будет ударен. Этот метод возвращает самый большой прямоугольник, так что при щелчке точки в прямоугольнике элемент, определенный hItem параметром.

Этот метод отправляет TVM_GETITEMPARTRECT сообщение, описанное в пакете SDK для Windows. Дополнительные сведения см. в макросе TreeView_GetItemPartRect .

Пример

Первый пример кода определяет переменную, m_treeCtrlкоторая используется для доступа к текущему элементу управления представления дерева. В примере кода также определяется целое число без знака и несколько HTREEITEM переменных. Эти переменные используются в следующем примере.

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

В следующем примере кода используется идентификатор специальных возможностей и CTreeCtrl::MapAccIdToItem метод для извлечения дескриптора в элемент представления корневого дерева. Затем в примере используется дескриптор и CTreeCtrl::GetItemPartRect метод для рисования трехмерного прямоугольника вокруг этого элемента. В предыдущем разделе примера кода, который не показан, мы создали представление дерева, состоящее из корневой страны или региона для США, подмножены для штатов Пенсильвании и Вашингтона, а также элементы дерева для городов в этих штатах. Мы использовали CTreeCtrl::MapItemToAccID метод для связывания корневого элемента представления дерева с идентификатором специальных возможностей.

CRect rect;
HTREEITEM hUS = m_treeCtrl.MapAccIdToItem(accIdUS);
m_treeCtrl.GetItemPartRect(hUS, TVGIPR_BUTTON, &rect);
m_treeCtrl.GetDC()->Draw3dRect(&rect, RGB(255, 0, 0), RGB(0, 0, 255));

CTreeCtrl::GetItemRect

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

BOOL GetItemRect(
    HTREEITEM hItem,
    LPRECT lpRect,
    BOOL bTextOnly) const;

Параметры

hItem
Дескриптор элемента управления представлением дерева.

lpRect
Указатель на структуру, которая получает ограничивающий RECT прямоугольник. Координаты относятся к левому верхнему углу элемента управления представлением дерева.

bTextOnly
Если этот параметр является ненулевой, ограничивающий прямоугольник содержит только текст элемента. В противном случае она включает всю строку, которую элемент занимает в элементе управления представлением дерева.

Возвращаемое значение

Ненулевое значение, если элемент виден, с ограничивающим прямоугольником, содержащимся в lpRect. В противном случае — значение 0 с lpRect неинициализированным.

Пример

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Dump the bounds of hmyItem.
if (hmyItem != NULL)
{
   RECT r;

   m_TreeCtrl.GetItemRect(hmyItem, &r, FALSE);

   TRACE(TEXT("left = %d, top = %d, right = %d, bottom = %d\r\n"),
         r.left,
         r.top,
         r.right,
         r.bottom);
}

CTreeCtrl::GetItemState

Возвращает состояние элемента, указанного hItemв .

UINT GetItemState(
    HTREEITEM hItem,
    UINT nStateMask) const;

Параметры

hItem
Дескриптор элемента, состояние которого требуется извлечь.

nStateMask
Маска, указывающая одно или несколько состояний, которые необходимо извлечь. Дополнительные сведения о возможных значениях nStateMaskсм. в обсуждении state и stateMask членах TVITEM структуры в пакете SDK для Windows.

Возвращаемое значение

Объект, содержащий побитовый оператор OR C++ (|) значений, указанных в параметре nStateMask.UINT Дополнительные сведения о возможных значениях см. в разделе CTreeCtrl::GetItem. Чтобы найти значение для определенного состояния, выполните побитовый оператор C++ AND (&) f значение состояния и возвращаемое значение, как показано в следующем примере.

Пример

// Show all of the visible items in bold.
HTREEITEM hItem = m_TreeCtrl.GetFirstVisibleItem();

while (hItem != NULL)
{
   m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
   ASSERT(TVIS_BOLD & m_TreeCtrl.GetItemState(hItem, TVIS_BOLD));
   hItem = m_TreeCtrl.GetNextVisibleItem(hItem);
}

CTreeCtrl::GetItemStateEx

Извлекает расширенное состояние указанного элемента в текущем элементе управления представлением дерева.

UINT GetItemStateEx(HTREEITEM hItem) const;

Параметры

hItem
[in] Обработка элемента управления "Представление дерева".

Возвращаемое значение

Расширенное состояние элемента. Дополнительные сведения см. в uStateEx элементе TVITEMEX структуры.

Замечания

Этот метод отправляет TVM_GETITEM сообщение, описанное в пакете SDK для Windows. Это сообщение возвращает TVITEMEX структуру, описывающую элемент управления представлением дерева, и этот метод извлекает uStateEx элемент из этой структуры.

CTreeCtrl::GetItemText

Возвращает текст элемента, указанного hItemв .

CString GetItemText(HTREEITEM hItem) const;

Параметры

hItem
Дескриптор элемента, текст которого требуется извлечь.

Возвращаемое значение

Объект CString , содержащий текст элемента.

Пример

Пример см. в примере CTreeCtrl::GetNextItem.

CTreeCtrl::GetLastVisibleItem

Извлекает последний необъяснимый элемент узла в текущем элементе управления "Представление дерева".

HTREEITEM GetLastVisibleItem() const;

Возвращаемое значение

Дескриптор последнего нерасположенного элемента узла, если метод выполнен успешно; NULLв противном случае .

Замечания

Этот метод отправляет TVM_GETNEXTITEM сообщение, описанное в пакете SDK для Windows. Дополнительные сведения см TVGN_LASTVISIBLE . в параметре flag этого сообщения.

Пример

Первый пример кода определяет переменную, m_treeCtrlкоторая используется для доступа к текущему элементу управления представления дерева. В примере кода также определяется целое число без знака и несколько HTREEITEM переменных. В следующем примере используется одна или несколько этих переменных.

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

Следующий пример кода извлекает дескриптор до последнего элемента узла представления дерева, а затем рисует трехмерный прямоугольник вокруг этого элемента. В предыдущем разделе примера кода, который не показан, мы создали представление дерева, состоящее из корневой страны или региона для США, подмножены для штатов Пенсильвании и Вашингтона, а также элементы дерева для городов в этих штатах.

CRect rect;
HTREEITEM hLast = m_treeCtrl.GetLastVisibleItem();
m_treeCtrl.GetItemPartRect(hLast, TVGIPR_BUTTON, &rect);
m_treeCtrl.GetDC()->Draw3dRect(&rect, RGB(255, 0, 0), RGB(0, 0, 255));

CTreeCtrl::GetLineColor

Эта функция-член реализует поведение сообщения TVM_GETLINECOLORWin32, как описано в пакете SDK для Windows.

COLORREF GetLineColor() const;

Возвращаемое значение

Текущий цвет линии.

Пример

COLORREF cr = m_TreeCtrl.GetLineColor();

CTreeCtrl::GetNextItem

Вызовите эту функцию, чтобы получить элемент представления дерева, имеющий указанную связь, указанную параметром nCode , к hItem.

HTREEITEM GetNextItem(
    HTREEITEM hItem,
    UINT nCode) const;

Параметры

hItem
Дескриптор элемента дерева.

nCode
Флаг, указывающий тип отношения hItem. Этот флаг может быть одним из следующих значений:

  • TVGN_CARET Извлекает выбранный в данный момент элемент.

  • TVGN_CHILD Извлекает первый дочерний элемент элемента, указанного параметром hItem .

  • TVGN_DROPHILITE Извлекает элемент, который является целью операции перетаскивания.

  • TVGN_FIRSTVISIBLE Извлекает первый видимый элемент.

  • TVGN_LASTVISIBLE Извлекает последний развернутый элемент в дереве. Это не извлекает последний элемент, видимый в окне представления дерева.

  • TVGN_NEXT Извлекает следующий элемент с братом.

  • TVGN_NEXTVISIBLE Извлекает следующий видимый элемент, который следует указанному элементу.

  • TVGN_PARENT Извлекает родительский элемент указанного элемента.

  • TVGN_PREVIOUS Извлекает предыдущий элемент с братом.

  • TVGN_PREVIOUSVISIBLE Извлекает первый видимый элемент, предшествующий указанному элементу.

  • TVGN_ROOT Извлекает первый дочерний элемент корневого элемента, в котором указанный элемент является частью.

Возвращаемое значение

Дескриптор следующего элемента в случае успешного выполнения; в противном случае NULL.

Замечания

Эта функция вернет NULL , если извлекаемый элемент является корневым узлом дерева. Например, если вы используете это сообщение с TVGN_PARENT флагом на первом уровне дочерним элементом корневого узла представления дерева, это сообщение будет возвращено NULL.

Пример

Пример использования GetNextItem в цикле см. в разделе CTreeCtrl::DeleteItem.

// find the currently selected item
HTREEITEM hCurSel = m_TreeCtrl.GetNextItem(TVI_ROOT, TVGN_CARET);

// report it to the user
if (hCurSel == NULL)
{
   AfxMessageBox(_T("There is no selected item"));
}
else
{
   CString str;
   str.Format(_T("The currently selected item is \"%s\""),
              (LPCTSTR)m_TreeCtrl.GetItemText(hCurSel));
   AfxMessageBox((LPCTSTR)str);
}

CTreeCtrl::GetNextSiblingItem

Вызовите эту функцию, чтобы получить следующий брат hItem.

HTREEITEM GetNextSiblingItem(HTREEITEM hItem) const;

Параметры

hItem
Дескриптор элемента дерева.

Возвращаемое значение

Дескриптор следующего элемента с братом; в противном случае NULL.

Пример

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Show all of the children of hmyItem in bold.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
   HTREEITEM hItem = m_TreeCtrl.GetChildItem(hmyItem);

   while (hItem != NULL)
   {
      m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
      hItem = m_TreeCtrl.GetNextSiblingItem(hItem);
   }
}

CTreeCtrl::GetNextVisibleItem

Вызовите эту функцию, чтобы получить следующий видимый элемент hItem.

HTREEITEM GetNextVisibleItem(HTREEITEM hItem) const;

Параметры

hItem
Дескриптор элемента дерева.

Возвращаемое значение

Дескриптор следующего видимого элемента; в противном случае NULL.

Пример

Пример см. в примере CTreeCtrl::SetCheck.

CTreeCtrl::GetParentItem

Вызовите эту функцию, чтобы получить родительский hItemобъект.

HTREEITEM GetParentItem(HTREEITEM hItem) const;

Параметры

hItem
Дескриптор элемента дерева.

Возвращаемое значение

Дескриптор родительского элемента; в противном случае NULL.

Замечания

Эта функция вернет NULL , если родительский элемент указанного элемента является корневым узлом дерева.

Пример

Пример см. в примере CTreeCtrl::EnsureVisible.

CTreeCtrl::GetPrevSiblingItem

Вызовите эту функцию, чтобы получить предыдущий одноуровневый элемент hItem.

HTREEITEM GetPrevSiblingItem(HTREEITEM hItem) const;

Параметры

hItem
Дескриптор элемента дерева.

Возвращаемое значение

Дескриптор предыдущего брата; в противном случае NULL.

Пример

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Show all of the previous siblings of hmyItem in bold.
HTREEITEM hItem = hmyItem;

while (hItem != NULL)
{
   m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
   hItem = m_TreeCtrl.GetPrevSiblingItem(hItem);
}

CTreeCtrl::GetPrevVisibleItem

Вызовите эту функцию, чтобы получить предыдущий видимый элемент hItem.

HTREEITEM GetPrevVisibleItem(HTREEITEM hItem) const;

Параметры

hItem
Дескриптор элемента дерева.

Возвращаемое значение

Дескриптор предыдущего видимого элемента; в противном случае NULL.

Пример

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Show all of the previous visible items of hmyItem in bold.
HTREEITEM hItem = hmyItem;

while (hItem != NULL)
{
   m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
   hItem = m_TreeCtrl.GetPrevVisibleItem(hItem);
}

CTreeCtrl::GetRootItem

Вызовите эту функцию, чтобы получить корневой элемент элемента элемента управления представлением дерева.

HTREEITEM GetRootItem() const;

Возвращаемое значение

Дескриптор корневого элемента; в противном случае NULL.

Пример

Пример см. в примере CTreeCtrl::EditLabel.

CTreeCtrl::GetScrollTime

Вызовите эту функцию-член, чтобы получить максимальное время прокрутки для элемента управления представлением дерева.

UINT GetScrollTime() const;

Возвращаемое значение

Максимальное время прокрутки в миллисекундах.

Замечания

Эта функция-член реализует поведение сообщения TVM_GETSCROLLTIMEWin32, как описано в пакете SDK для Windows.

CTreeCtrl::GetSelectedCount

Извлекает количество выбранных элементов в текущем элементе управления "Представление дерева".

UINT GetSelectedCount();

Возвращаемое значение

Количество выбранных элементов.

Замечания

Этот метод отправляет TVM_GETSELECTEDCOUNT сообщение, описанное в пакете SDK для Windows.

CTreeCtrl::GetSelectedItem

Вызовите эту функцию, чтобы получить выбранный в данный момент элемент элемента управления представления дерева.

HTREEITEM GetSelectedItem() const;

Возвращаемое значение

Дескриптор выбранного элемента; в противном случае NULL.

Пример

// Expand the selected item and make it visible, if possible.
HTREEITEM hItem = m_TreeCtrl.GetSelectedItem();

if ((hItem != NULL) && m_TreeCtrl.ItemHasChildren(hItem))
{
   m_TreeCtrl.Expand(hItem, TVE_EXPAND);
   m_TreeCtrl.EnsureVisible(hItem);
}

CTreeCtrl::GetTextColor

Эта функция-член реализует поведение сообщения TVM_GETTEXTCOLORWin32, как описано в пакете SDK для Windows.

COLORREF GetTextColor() const;

Возвращаемое значение

Значение COLORREF , представляющее текущий цвет текста. Если это значение равно -1, элемент управления использует системный цвет для цвета текста.

Пример

Пример см. в примере CTreeCtrl::SetTextColor.

CTreeCtrl::GetToolTips

Эта функция-член реализует поведение сообщения TVM_GETTOOLTIPSWin32, как описано в пакете SDK для Windows.

CToolTipCtrl* GetToolTips() const;

Возвращаемое значение

Указатель на объект, используемый CToolTipCtrl элементом управления деревом. Create Если функция-член использует стильTVS_NOTOOLTIPS, подсказки не используются и NULL возвращаются.

Замечания

Реализация GetToolTips MFC возвращает CToolTipCtrl объект, который используется элементом управления деревом, а не дескриптором элемента управления подсказки.

Пример

// If the tree control does not have a tooltips control,
// then use m_ToolTips as the tooltips for the tree control.
if (m_TreeCtrl.GetToolTips() == NULL)
{
   m_TreeCtrl.SetToolTips(&m_ToolTips);
}

CTreeCtrl::GetVisibleCount

Вызовите эту функцию, чтобы получить количество видимых элементов в элементе управления представлением дерева.

UINT GetVisibleCount() const;

Возвращаемое значение

Количество видимых элементов в элементе управления представлением дерева; в противном случае — 1.

Пример

Пример см. в примере CTreeCtrl::SetCheck.

CTreeCtrl::HitTest

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

HTREEITEM HitTest(
    CPoint pt,
    UINT* pFlags = NULL) const;

HTREEITEM HitTest(TVHITTESTINFO* pHitTestInfo) const;

Параметры

pt
Координаты клиента точки для тестирования.

pFlags
Указатель на целое число, которое получает сведения о результатах теста попадания. Это может быть одно или несколько значений, перечисленных в flags разделе "Примечания".

pHitTestInfo
TVHITTESTINFO Адрес структуры, содержащей позицию для попадания в тест, и получает сведения о результатах теста попадания.

Возвращаемое значение

Дескриптор элемента представления дерева, который занимает указанную точку или NULL если элемент не занимает точку.

Замечания

При вызове pt этой функции параметр задает координаты точки для тестирования. Функция возвращает дескриптор элемента в указанной точке или NULL если элемент не занимает точку. Кроме того, pFlags параметр содержит значение, указывающее расположение указанной точки. Возможны следующие значения:

значение Description
TVHT_ABOVE Над клиентской областью.
TVHT_BELOW Под клиентской областью.
TVHT_NOWHERE В клиентской области, но ниже последнего элемента.
TVHT_ONITEM На растровом рисунке или метки, связанной с элементом.
TVHT_ONITEMBUTTON На кнопке, связанной с элементом.
TVHT_ONITEMICON На растровом рисунке, связанном с элементом.
TVHT_ONITEMINDENT В отступе, связанном с элементом.
TVHT_ONITEMLABEL На метке (строке), связанной с элементом.
TVHT_ONITEMRIGHT В области справа от элемента.
TVHT_ONITEMSTATEICON На значке состояния для элемента представления дерева, который находится в определяемом пользователем состоянии.
TVHT_TOLEFT Слева от клиентской области.
TVHT_TORIGHT Справа от клиентской области.

Пример

// Select the item that is at the point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SelectItem(hItem);
}

CTreeCtrl::InsertItem

Вызовите эту функцию, чтобы вставить новый элемент в элемент управления представлением дерева.

HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct);

HTREEITEM InsertItem(
    UINT nMask,
    LPCTSTR lpszItem,
    int nImage,
    int nSelectedImage,
    UINT nState,
    UINT nStateMask,
    LPARAM lParam,
    HTREEITEM hParent,
    HTREEITEM hInsertAfter);

HTREEITEM InsertItem(
    LPCTSTR lpszItem,
    HTREEITEM hParent = TVI_ROOT,
    HTREEITEM hInsertAfter = TVI_LAST);

HTREEITEM InsertItem(
    LPCTSTR lpszItem,
    int nImage,
    int nSelectedImage,
    HTREEITEM hParent = TVI_ROOT,
    HTREEITEM hInsertAfter = TVI_LAST);

Параметры

lpInsertStruct
Указатель на TVINSERTSTRUCT объект, указывающий атрибуты элемента представления дерева, который необходимо вставить.

nMask
Целое число, указывающее, какие атрибуты необходимо задать. См. структуру TVITEM в пакете SDK для Windows.

lpszItem
Адрес строки, содержащей текст элемента.

nImage
Индекс изображения элемента в списке изображений элемента в представлении дерева.

nSelectedImage
Индекс выбранного изображения элемента в списке изображений элемента представления дерева.

nState
Задает значения для состояний элемента. Список соответствующих состояний см. в разделе "Состояния элементов управления представлением дерева" в пакете SDK для Windows.

nStateMask
Указывает, какие состояния необходимо задать. См. структуру TVITEM в пакете SDK для Windows.

lParam
Значение для конкретного приложения, связанное с элементом.

hParent
Дескриптор родительского элемента вставленного элемента.

hInsertAfter
Дескриптор элемента, после которого необходимо вставить новый элемент.

Возвращаемое значение

Дескриптор нового элемента в случае успешного выполнения; в противном случае NULL.

Замечания

В примере показаны ситуации, в которых может потребоваться использовать каждую версию функции при вставке элемента управления деревом.

Пример

// Insert a root item using the structure. We must
// initialize a TVINSERTSTRUCT structure and pass its
// address to the call. 

TVINSERTSTRUCT tvInsert;
tvInsert.hParent = NULL;
tvInsert.hInsertAfter = NULL;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.pszText = _T("United States");

HTREEITEM hCountry = m_TreeCtrl.InsertItem(&tvInsert);

// Insert subitems of that root. Pennsylvania is
// a state in the United States, so its item will be a child
// of the United States item. We won't set any image or states,
// so we supply only the TVIF_TEXT mask flag. This
// override provides nearly complete control over the
// insertion operation without the tedium of initializing
// a structure. If you're going to add lots of items
// to a tree, you might prefer the structure override
// as it affords you a performance win by allowing you
// to initialize some fields of the structure only once,
// outside of your insertion loop.

HTREEITEM hPA = m_TreeCtrl.InsertItem(TVIF_TEXT,
   _T("Pennsylvania"), 0, 0, 0, 0, 0, hCountry, NULL);

// Insert the "Washington" item and assure that it is
// inserted after the "Pennsylvania" item. This override is 
// more appropriate for conveniently inserting items with 
// images.

HTREEITEM hWA = m_TreeCtrl.InsertItem(_T("Washington"),
   0, 0, hCountry, hPA);

// We'll add some cities under each of the states.
// The override used here is most appropriate
// for inserting text-only items.

m_TreeCtrl.InsertItem(_T("Pittsburgh"), hPA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Harrisburg"), hPA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Altoona"), hPA, TVI_SORT);

m_TreeCtrl.InsertItem(_T("Seattle"), hWA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Kalaloch"), hWA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Yakima"), hWA, TVI_SORT);

CTreeCtrl::ItemHasChildren

Эта функция позволяет определить, имеет ли элемент дерева, указанный дочерними hItem элементами.

BOOL ItemHasChildren(HTREEITEM hItem) const;

Параметры

hItem
Дескриптор элемента дерева.

Возвращаемое значение

Ненулевое значение, если элемент дерева, указанный дочерними hItem элементами, имеет значение 0, если он не указан.

Замечания

В этом случае можно использовать CTreeCtrl::GetChildItem для извлечения этих дочерних элементов.

Пример

Пример см. в примере CTreeCtrl::GetSelectedItem.

CTreeCtrl::MapAccIdToItem

Карты указанный идентификатор специальных возможностей дескриптор элемента представления дерева в текущем элементе управления представления дерева.

HTREEITEM MapAccIdToItem(UINT uAccId) const;

Параметры

uAccId
[in] Идентификатор специальных возможностей для элемента в элементе представления дерева.

Возвращаемое значение

Дескриптор элемента представления дерева (HTREEITEM), соответствующий параметру uAccId . Дополнительные сведения см. в hItem элементе TVITEMEX структуры.

Замечания

Специальные возможности — это приложения, которые помогают людям с ограниченными возможностями использовать компьютеры. Идентификатор специальных возможностей используется интерфейсом IAccessible для уникального указания элемента в окне. Дополнительные сведения об API см. в IAccessible статье Microsoft Active Accessibility.

Этот метод отправляет TVM_MAPACCIDTOHTREEITEM сообщение, описанное в пакете SDK для Windows.

Пример

Первый пример кода определяет переменную, m_treeCtrlкоторая используется для доступа к текущему элементу управления представления дерева. В примере кода также определяется целое число без знака и несколько HTREEITEM переменных. Эти переменные используются в следующем примере.

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

В следующем примере кода используется идентификатор специальных возможностей и CTreeCtrl::MapAccIdToItem метод для извлечения дескриптора в элемент представления корневого дерева. В примере используется дескриптор и CTreeCtrl::GetItemPartRect метод для рисования трехмерного прямоугольника вокруг этого элемента. В предыдущем разделе примера кода, который не показан, мы создали представление дерева, состоящее из корневой страны или региона для США, подмножены для штатов Пенсильвании и Вашингтона, а также элементы дерева для городов в этих штатах. Мы использовали CTreeCtrl::MapItemToAccID метод для связывания корневого элемента представления дерева с идентификатором специальных возможностей.

CRect rect;
HTREEITEM hUS = m_treeCtrl.MapAccIdToItem(accIdUS);
m_treeCtrl.GetItemPartRect(hUS, TVGIPR_BUTTON, &rect);
m_treeCtrl.GetDC()->Draw3dRect(&rect, RGB(255, 0, 0), RGB(0, 0, 255));

CTreeCtrl::MapItemToAccID

Карты указанный дескриптор элемента представления дерева в текущем элементе управления представления дерева в идентификатор специальных возможностей.

UINT MapItemToAccID(HTREEITEM hItem) const;

Параметры

hItem
[in] Дескриптор элемента представления дерева в элементе управления. Дополнительные сведения см. в hItem элементе TVITEMEX структуры.

Возвращаемое значение

Идентификатор специальных возможностей, соответствующий параметру hItem .

Замечания

Специальные возможности — это приложения, которые помогают людям с ограниченными возможностями использовать компьютеры. Идентификатор специальных возможностей используется интерфейсом IAccessible для уникального указания элемента в окне. Дополнительные сведения об API см. в IAccessible статье Microsoft Active Accessibility.

Этот метод отправляет TVM_MAPHTREEITEMTOACCID сообщение, описанное в пакете SDK для Windows.

Пример

Первый пример кода определяет переменную, m_treeCtrlкоторая используется для доступа к текущему элементу управления представления дерева. В примере кода также определяется целое число без знака и несколько HTREEITEM переменных. Эти переменные используются в следующем примере.

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

Следующий пример кода получает идентификационный номер элемента управления "Представление дерева". В предыдущем разделе примера кода, который не показан, мы создали представление дерева, состоящее из корневой страны или региона для США, подмножены для штатов Пенсильвании и Вашингтона, а также элементы дерева для городов в этих штатах. Этот пример кода получает уникальный идентификационный номер для узла корневой страны или региона.

// Map an accessibility identifier to the Pennsylvania node.
accIdUS = m_treeCtrl.MapItemToAccId(hCountry);

CTreeCtrl::Select

Вызовите эту функцию, чтобы выбрать заданный элемент представления дерева, прокрутите элемент в представление или перерисуйте элемент в стиле, используемом для указания цели операции перетаскивания.

BOOL Select(
    HTREEITEM hItem,
    UINT nCode);

Параметры

hItem
Дескриптор элемента дерева.

nCode
Тип выполняемого действия. Этот параметр может принимать одно из следующих значений :

  • TVGN_CARET Задает выделение заданному элементу.

  • TVGN_DROPHILITE Перерисовывает заданный элемент в стиле, используемом для указания цели операции перетаскивания.

  • TVGN_FIRSTVISIBLE Прокручивает представление дерева по вертикали, чтобы данный элемент был первым видимым.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Если nCode содержит значение TVGN_CARET, родительское окно получает TVN_SELCHANGING сообщения и TVN_SELCHANGED уведомления. Кроме того, если указанный элемент является дочерним элементом свернутого родительского элемента, будет развернут список дочерних элементов родительского элемента, чтобы отобразить указанный элемент. В этом случае родительское окно получает TVN_ITEMEXPANDING сообщения и TVN_ITEMEXPANDED уведомления.

Пример

Пример см. в примере CTreeCtrl::HitTest.

CTreeCtrl::SelectDropTarget

Вызовите эту функцию, чтобы перераскрыть элемент в стиле, используемом для указания цели операции перетаскивания.

BOOL SelectDropTarget(HTREEITEM hItem);

Параметры

hItem
Дескриптор элемента дерева.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Пример

// Set the item at the point myPoint as the drop target.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SelectDropTarget(hItem);
   ASSERT(m_TreeCtrl.GetDropHilightItem() == hItem);
}

CTreeCtrl::SelectItem

Вызовите эту функцию, чтобы выбрать заданный элемент представления дерева.

BOOL SelectItem(HTREEITEM hItem);

Параметры

hItem
Дескриптор элемента дерева.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Если hItem это NULLтак, эта функция не выбирает элемент.

Пример

// Select the item that is at the point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SelectItem(hItem);
}

CTreeCtrl::SelectSetFirstVisible

Вызовите эту функцию для прокрутки представления дерева по вертикали, чтобы заданный элемент был первым видимым элементом.

BOOL SelectSetFirstVisible(HTREEITEM hItem);

Параметры

hItem
Дескриптор элемента дерева, который должен быть задан как первый видимый элемент.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Функция отправляет сообщение в окно с параметрами и TVGN_FIRSTVISIBLE параметрами TVM_SELECTITEM сообщения.

Пример

// Select the item at the point myPoint as the first visible item.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SelectSetFirstVisible(hItem);
}

CTreeCtrl::SetAutoscrollInfo

Задает скорость автообнаполнения текущего элемента управления "Представление дерева".

BOOL SetAutoscrollInfo(
    UINT uPixelsPerSec,
    UINT uUpdateTime);

Параметры

uPixelsPerSec
[in] Количество пикселей в секунду для прокрутки.

uUpdateTime
[in] Интервал времени между обновлениями элемента управления.

Возвращаемое значение

Всегда возвращает значение TRUE.

Замечания

Параметры автообката используются для прокрутки в представление элемента, который в настоящее время не отображается. Элемент управления "Представление дерева" должен иметь расширенный стиль, описанный TVS_EX_AUTOHSCROLL в расширенных стилях элемента управления "Представление дерева".

Этот метод отправляет TVM_SETAUTOSCROLLINFO сообщение, описанное в пакете SDK для Windows.

Пример

Первый пример кода определяет переменную, m_treeCtrlкоторая используется для доступа к текущему элементу управления представления дерева. В примере кода также определяется целое число без знака и несколько HTREEITEM переменных. Эти переменные используются в следующем примере.

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

Следующий пример кода задает поведение автообнастроения текущего элемента управления "Представление дерева". В предыдущем разделе примера кода, который не показан, мы создали представление дерева, состоящее из корневой страны или региона для США, подмножены для штатов Пенсильвании и Вашингтона, а также элементы дерева для городов в этих штатах. Мы намеренно сделали элемент управления представлением дерева узким, чтобы он должен автоматически прокручиваться, чтобы отобразить элемент дерева с фокусом. В примере кода элемент управления "Представление дерева" автоматически прокручивается 30 пикселей в секунду каждые 5 секунд, пока элемент дерева не находится в представлении.

// Scroll 30 pixels/sec and redraw every 5 seconds.
m_treeCtrl.SetAutoscrollInfo(30, 5);

CTreeCtrl::SetBkColor

Эта функция-член реализует поведение сообщения TVM_SETBKCOLORWin32, как описано в пакете SDK для Windows.

COLORREF SetBkColor(COLORREF clr);

Параметры

clr
Значение COLORREF , содержащее новый цвет фона. Если это значение равно -1, элемент управления отменить изменения использовать системный цвет для цвета фона.

Возвращаемое значение

Значение COLORREF , представляющее текущий цвет текста. Если это значение равно -1, элемент управления использует системный цвет для цвета текста.

Пример

Пример см. в примере CTreeCtrl::SetTextColor.

CTreeCtrl::SetCheck

Вызовите эту функцию-член, чтобы задать состояние проверка для элемента управления деревом.

BOOL SetCheck(
    HTREEITEM hItem,
    BOOL fCheck = TRUE);

Параметры

hItem
Значение HTREEITEM для получения изменения состояния проверка.

fCheck
Указывает, должен ли элемент управления деревом проверка или не проверка. По умолчанию SetCheck задает элемент для проверка.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Если элемент управления деревом проверка (fCheckзадано значение TRUE), элемент отображается со знаком проверка.

Пример

UINT uCount = m_TreeCtrl.GetVisibleCount();
HTREEITEM hItem = m_TreeCtrl.GetFirstVisibleItem();

// Toggle the check state of all the visible items.
for (UINT i = 0; i < uCount; i++)
{
   ASSERT(hItem != NULL);
   m_TreeCtrl.SetCheck(hItem, !m_TreeCtrl.GetCheck(hItem));
   hItem = m_TreeCtrl.GetNextVisibleItem(hItem);
}

Чтобы использовать проверка boxes, задайте TVS_CHECKBOXES перед заполнением элемента управления деревом.

m_TreeCtrl.ModifyStyle(0, TVS_CHECKBOXES);

HTREEITEM aItem = m_TreeCtrl.InsertItem(_T("AAA"));
m_TreeCtrl.SetCheck(aItem);

CTreeCtrl::SetExtendedStyle

Задает расширенные стили для текущего элемента управления "Представление дерева".

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

Параметры

dwExMask
[in] Битовая маска, указывающая, какие стили в текущем элементе управления представления дерева влияют на этот метод. Если этот параметр равен нулю, он игнорируется, а значение dwExStyles параметра назначается элементу управления "Представление дерева". Укажите ноль или побитовое сочетание стилей, описанных в расширенных стилях элемента управления "Представление дерева".

dwExStyles
[in] Битовая маска, указывающая, какие стили в текущем элементе управления "Представление дерева" нужно задать или очистить. Чтобы задать сочетание стилей, укажите побитовое сочетание стилей (OR), описанных в расширенных стилях элемента управления "Представление дерева". Чтобы очистить набор стилей, укажите ноль.

Возвращаемое значение

Значение, содержащее предыдущие расширенные стили элементов управления.

Замечания

Этот метод очищает стили, указанные в параметре dwExMask , а затем задает стили, указанные в параметре dwExStyles . Только расширенные стили, соответствующие битам изменений dwExMask .

Этот метод отправляет TVM_SETEXTENDEDSTYLE сообщение, описанное в пакете SDK для Windows.

Пример

Первый пример кода определяет переменную, m_treeCtrlкоторая используется для доступа к текущему элементу управления представления дерева. В примере кода также определяется целое число без знака и несколько HTREEITEM переменных. Эти переменные используются в следующем примере.

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

Следующий пример кода добавляет расширенный TVS_EX_AUTOHSCROLL стиль в текущий элемент управления представления дерева. В предыдущем разделе примера кода, который не показан, мы создали представление дерева, состоящее из корневой страны или региона для США, подмножены для штатов Пенсильвании и Вашингтона, а также элементы дерева для городов в этих штатах. Мы намеренно сделали элемент управления представлением дерева узким, чтобы он должен автоматически прокручиваться, чтобы отобразить элемент дерева с фокусом.

m_treeCtrl.SetExtendedStyle(TVS_EX_AUTOHSCROLL, TVS_EX_AUTOHSCROLL);

CTreeCtrl::SetImageList

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

CImageList* SetImageList(
    CImageList* pImageList,
    int nImageListType);

Параметры

pImageList
Указатель на список изображений для назначения. Если pImageList это NULLтак, все изображения удаляются из элемента управления представлением дерева.

nImageListType
Тип списка изображений для задания. Список изображений может быть одним из следующих значений:

  • TVSIL_NORMAL Задает обычный список изображений, содержащий выбранные и неизбираемые изображения для элемента представления дерева. Это состояние необходимо использовать для наложения изображений.

  • TVSIL_STATE Задает список образов состояния, содержащий изображения для элементов представления дерева, которые находятся в пользовательском состоянии.

Возвращаемое значение

Указатель на предыдущий список изображений, если таковой есть; в противном случае NULL.

Пример

Пример см. в примере CTreeCtrl::GetImageList.

CTreeCtrl::SetIndent

Вызовите эту функцию, чтобы задать ширину отступа для элемента управления представлением дерева и перерисовать элемент управления, чтобы отразить новую ширину.

void SetIndent(UINT nIndent);

Параметры

nIndent
Ширина (в пикселях) отступа. Если nIndent ширина меньше, определяемая системой минимальная ширина, новая ширина устанавливается как минимум, определяемый системой.

Пример

Пример см. в примере CTreeCtrl::GetIndent.

CTreeCtrl::SetInsertMark

Эта функция-член реализует поведение сообщения TVM_SETINSERTMARKWin32, как описано в пакете SDK для Windows.

BOOL SetInsertMark(
    HTREEITEM hItem,
    BOOL fAfter = TRUE);

Параметры

hItem
HTREEITEM Значение , указывающее, в каком элементе будет помещен знак вставки. Если этот аргумент имеет значение NULL, то метка вставки удаляется.

fAfter
Значение BOOL, указывающее, помещается ли метка вставки до или после указанного элемента. Если этот аргумент не является ненулевой, после элемента будет помещена метка вставки. Если этот аргумент равен нулю, перед элементом будет помещена метка вставки.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Пример

// Set the insert mark to be before the item at the point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SetInsertMark(hItem, FALSE);
}

CTreeCtrl::SetInsertMarkColor

Эта функция-член реализует поведение сообщения TVM_SETINSERTMARKCOLORWin32, как описано в пакете SDK для Windows.

COLORREF SetInsertMarkColor(COLORREF clrNew);

Параметры

clrNew
Значение COLORREF , содержащее новый цвет метки вставки.

Возвращаемое значение

Значение COLORREF , содержащее предыдущий цвет метки вставки.

Пример

Пример см. в примере CTreeCtrl::GetInsertMarkColor.

CTreeCtrl::SetItem

Вызовите эту функцию, чтобы задать атрибуты указанного элемента представления дерева.

BOOL SetItem(TVITEM* pItem);

BOOL SetItem(
    HTREEITEM hItem,
    UINT nMask,
    LPCTSTR lpszItem,
    int nImage,
    int nSelectedImage,
    UINT nState,
    UINT nStateMask,
    LPARAM lParam);

Параметры

pItem
Указатель на TVITEM структуру, содержащую атрибуты нового элемента, как описано в пакете SDK для Windows.

hItem
Дескриптор элемента, атрибуты которого необходимо задать. См. hItem элемент TVITEM структуры в пакете SDK для Windows.

nMask
Целое число, указывающее, какие атрибуты необходимо задать. mask См. элемент TVITEM структуры.

lpszItem
Адрес строки, содержащей текст элемента.

nImage
Индекс изображения элемента в списке изображений элемента в представлении дерева. iImage См. элемент TVITEM структуры.

nSelectedImage
Индекс выбранного изображения элемента в списке изображений элемента представления дерева. iSelectedImage См. элемент TVITEM структуры.

nState
Задает значения для состояний элемента. State См. элемент TVITEM структуры.

nStateMask
Указывает, какие состояния необходимо задать. stateMask См. элемент TVITEM структуры.

lParam
Значение для конкретного приложения, связанное с элементом.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

TVITEM В структуре hItem элемент идентифицирует элемент, а mask член указывает, какие атрибуты следует задать.

mask Если элемент или параметр указывает TVIF_TEXT значение, элемент или nMasklpszItem адрес строки, завершаемой значением NULL, pszText и cchTextMax элемент игнорируется. Если mask (илиnMask) указывает TVIF_STATE значение, элемент или параметр указывает, какие состояния элемента следует изменить, stateMask а state член или nStateMasknState параметр содержит значения для этих состояний.

Пример

// Show the item at the point myPoint in bold.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SetItem(hItem, TVIF_STATE, NULL, 0, 0, TVIS_BOLD,
                      TVIS_BOLD, 0);
}

CTreeCtrl::SetItemData

Вызовите эту функцию, чтобы задать значение для конкретного приложения, связанное с указанным элементом.

BOOL SetItemData(
    HTREEITEM hItem,
    DWORD_PTR dwData);

Параметры

hItem
Дескриптор элемента, данные которого необходимо извлечь.

dwData
Значение, связанное с элементом, указанным в hItemуказателе.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Пример

CString str;
HTREEITEM hItem;

// Insert 20 items into the tree control making every item's
// data be the handle of the item.
for (int i = 0; i < 20; i++)
{
   str.Format(TEXT("item %d"), i);
   hItem = m_TreeCtrl.InsertItem(str);

   if (hItem != NULL)
   {
      m_TreeCtrl.SetItemData(hItem, (DWORD_PTR)hItem);
   }
}

CTreeCtrl::SetItemExpandedImageIndex

Задает индекс изображения для отображения, когда указанный элемент текущего элемента управления "Представление дерева" находится в развернутом состоянии.

BOOL SetItemExpandedImageIndex(
    HTREEITEM hItem,
    int iExpandedImage);

Параметры

hItem
[in] Обработка элемента управления "Представление дерева".

iExpandedImage
[in] Индекс изображения, отображаемого, когда указанный элемент находится в развернутом состоянии.

Возвращаемое значение

TRUE Значение , если этот метод выполнен успешно; FALSEв противном случае .

Замечания

Этот метод отправляет TVM_SETITEM сообщение, описанное в пакете SDK для Windows. Этот метод назначает iExpandedImage параметр iExpandedImage члену TVITEMEX структуры, а затем использует эту структуру в сообщении.

Пример

Первый пример кода определяет переменную, m_treeCtrlкоторая используется для доступа к текущему элементу управления представления дерева. В примере кода также определяется целое число без знака и несколько HTREEITEM переменных. Эти переменные используются в следующем примере.

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

Следующий пример кода — это тривиальный тест, чтобы определить, возвращает ли CTreeCtrl::GetItemExpandedImageIndex метод значение, заданное методом CTreeCtrl::SetItemExpandedImageIndex . В предыдущем разделе примера кода, который не показан, мы создали представление дерева, состоящее из корневой страны или региона для США, подмножены для штатов Пенсильвании и Вашингтона, а также элементы дерева для городов в этих штатах.

CString str;
CString msg = _T("The set and retrieved item expanded image ")
              _T("indexes are%s equal.");
int nSetItem = 0;
m_treeCtrl.SetItemExpandedImageIndex(hCountry, nSetItem);
int nItem = m_treeCtrl.GetItemExpandedImageIndex(hCountry);
if (nItem == nSetItem)
   str.Format(msg, _T(""));
else
   str.Format(msg, _T(" not"));
AfxMessageBox(str, MB_ICONINFORMATION);

CTreeCtrl::SetItemHeight

Эта функция-член реализует поведение сообщения TVM_SETITEMHEIGHTWin32, как описано в пакете SDK для Windows.

SHORT SetItemHeight(SHORT cyHeight);

Параметры

cyHeight
Задает новую высоту каждого элемента в представлении дерева в пикселях. Если этот аргумент меньше высоты изображений, он будет установлен на высоту изображений. Если этот аргумент не даже, он округляется до ближайшего даже значения. Если этот аргумент равен -1, элемент управления отменить изменения использовать высоту элемента по умолчанию.

Возвращаемое значение

Предыдущая высота элементов в пикселях.

Пример

Пример см. в примере CTreeCtrl::GetItemHeight.

CTreeCtrl::SetItemImage

Связывает изображения с элементом.

BOOL SetItemImage(
    HTREEITEM hItem,
    int nImage,
    int nSelectedImage);

Параметры

hItem
Дескриптор элемента, изображение которого необходимо задать.

nImage
Индекс изображения элемента в списке изображений элемента в представлении дерева.

nSelectedImage
Индекс выбранного изображения элемента в списке изображений элемента представления дерева.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Каждый элемент в элементе управления представлением дерева может иметь пару битовых изображений, связанных с ним. Изображения отображаются слева от метки элемента. Одно изображение отображается при выборе элемента, а другой отображается, когда элемент не выбран. Например, элемент может отображать открытую папку при выборе и закрытую папку, если она не выбрана.

Вызовите эту функцию, чтобы задать индекс изображения элемента и его выбранное изображение в списке изображений элемента управления представлением дерева.

Дополнительные сведения о изображениях см. в статье CImageList.

Пример

Пример см. в примере CTreeCtrl::GetItemImage.

CTreeCtrl::SetItemState

Задает состояние элемента, указанного в hItem.

BOOL SetItemState(
    HTREEITEM hItem,
    UINT nState,
    UINT nStateMask);

Параметры

hItem
Дескриптор элемента, состояние которого необходимо задать.

nState
Задает новые состояния для элемента.

nStateMask
Указывает, какие состояния необходимо изменить.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Сведения о состояниях см. в разделе CTreeCtrl::GetItem.

Пример

Пример см. в примере CTreeCtrl::GetItemState.

CTreeCtrl::SetItemStateEx

Задает расширенное состояние указанного элемента в текущем элементе управления "Представление дерева".

BOOL SetItemStateEx(
    HTREEITEM hItem,
    UINT uStateEx);

Параметры

hItem
[in] Обработка элемента управления "Представление дерева".

uStateEx
[in] Расширенное состояние элемента. Дополнительные сведения см. в uStateEx элементе TVITEMEX структуры.

Возвращаемое значение

TRUE Значение , если этот метод выполнен успешно; FALSEв противном случае .

Замечания

Этот метод отправляет TVM_SETITEM сообщение, описанное в пакете SDK для Windows. Этот метод назначает uStateEx параметр uStateEx члену TVITEMEX структуры, а затем использует эту структуру в сообщении.

Пример

Первый пример кода определяет переменную, m_treeCtrlкоторая используется для доступа к текущему элементу управления представления дерева. В примере кода также определяется целое число без знака и несколько HTREEITEM переменных. Эти переменные используются в следующем примере.

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

Следующий пример кода задает для элемента представления дерева отключенное состояние. В предыдущем разделе примера кода, который не показан, мы создали представление дерева, состоящее из корневой страны или региона для США, подмножены для штатов Пенсильвании и Вашингтона, а также элементы дерева для городов в этих штатах. Этот пример кода задает для узла Пенсильвании отключенное состояние.

// Disable the Pennsylvania node.
m_treeCtrl.SetItemStateEx(hPA, TVIS_EX_DISABLED);

CTreeCtrl::SetItemText

Задает текст элемента, указанного в hItem.

BOOL SetItemText(
    HTREEITEM hItem,
    LPCTSTR lpszItem);

Параметры

hItem
Дескриптор элемента, текст которого необходимо задать.

lpszItem
Адрес строки, содержащей новый текст элемента

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Пример

// Clear the text of the item at point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SetItemText(hItem, NULL);
}

CTreeCtrl::SetLineColor

Вызовите эту функцию-член, чтобы задать текущий цвет линии для элемента управления представлением дерева.

COLORREF SetLineColor(COLORREF clrNew = CLR_DEFAULT);

Параметры

clrNew
Новый цвет линии.

Возвращаемое значение

Предыдущий цвет линии.

Замечания

Эта функция-член реализует поведение сообщения TVM_SETLINECOLORWin32, как описано в пакете SDK для Windows.

Пример

COLORREF clrPrev = m_TreeCtrl.SetLineColor(RGB(255, 0, 0));

CTreeCtrl::SetScrollTime

Вызовите эту функцию-член, чтобы задать максимальное время прокрутки для элемента управления представлением дерева.

UINT SetScrollTime(UINT uScrollTime);

Параметры

uScrollTime
Новое максимальное время прокрутки в миллисекундах. Если это значение меньше 100, оно округляется до 100.

Возвращаемое значение

Предыдущее максимальное время прокрутки в миллисекундах.

Замечания

Эта функция-член реализует поведение сообщения TVM_SETSCROLLTIMEWin32, как описано в пакете SDK для Windows.

CTreeCtrl::SetTextColor

Эта функция-член реализует поведение сообщения TVM_SETTEXTCOLORWin32, как описано в пакете SDK для Windows.

COLORREF SetTextColor(COLORREF clr);

Параметры

clr
Значение COLORREF , содержащее новый цвет текста. Если этот аргумент равен -1, элемент управления отменить изменения использовать системный цвет для цвета текста.

Возвращаемое значение

Значение COLORREF , представляющее предыдущий цвет текста. Если это значение равно -1, элемент управления использовал системный цвет для цвета текста.

Пример

// change text color to white and background to dark blue
m_TreeCtrl.SetTextColor(RGB(255, 255, 255));
ASSERT(m_TreeCtrl.GetTextColor() == RGB(255, 255, 255));
m_TreeCtrl.SetBkColor(RGB(0, 0, 128));
ASSERT(m_TreeCtrl.GetBkColor() == RGB(0, 0, 128));

// force repaint immediately
m_TreeCtrl.Invalidate();

CTreeCtrl::SetToolTips

Эта функция-член реализует поведение сообщения TVM_SETTOOLTIPSWin32, как описано в пакете SDK для Windows.

CToolTipCtrl* SetToolTips(CToolTipCtrl* pWndTip);

Параметры

pWndTip
Указатель на CToolTipCtrl объект, который будет использоваться элементом управления деревом.

Возвращаемое значение

Указатель на CToolTipCtrl объект, содержащий подсказку, которая ранее использовалась элементом управления, или NULL если подсказки ранее не использовались.

Замечания

Чтобы использовать подсказки, укажите TVS_NOTOOLTIPS стиль при создании CTreeCtrl объекта.

Пример

Пример см. в примере CTreeCtrl::GetToolTips.

CTreeCtrl::ShowInfoTip

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

void ShowInfoTip(HTREEITEM hItem);

Параметры

hItem
[in] Дескриптор элемента представления дерева в элементе управления. Дополнительные сведения см. в hItem элементе TVITEMEX структуры.

Замечания

Дополнительные сведения о разнице между подсказками и подсказками см . в подсказках и подсказках.

Этот метод отправляет TVM_SHOWINFOTIP сообщение, описанное в пакете SDK для Windows.

CTreeCtrl::SortChildren

Вызовите эту функцию для сортировки дочерних элементов заданного родительского элемента в элементе управления представлением дерева.

BOOL SortChildren(HTREEITEM hItem);

Параметры

hItem
Дескриптор родительского элемента, дочерние элементы которого должны быть отсортированы. Если hItem это NULLтак, сортировка будет продолжаться из корня дерева.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

SortChildren не будет рекурсироваться по дереву; будут отсортированы только непосредственные дочерние hItem элементы.

Пример

// Sort all of the items in the tree control.
m_TreeCtrl.SortChildren(TVI_ROOT);

CTreeCtrl::SortChildrenCB

Вызовите эту функцию для сортировки элементов представления дерева с помощью функции обратного вызова, определяемой приложением, которая сравнивает элементы.

BOOL SortChildrenCB(LPTVSORTCB pSort);

Параметры

pSort
Указатель на структуру TVSORTCB.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Функция lpfnCompareсравнения структуры должна возвращать отрицательное значение, если первый элемент должен предшествовать второму, положительное значение, если первый элемент должен следовать второму, или ноль, если два элемента эквивалентны.

lParam2 Параметры lParam1 соответствуют lParam элементу TVITEM структуры для двух элементов, сравниваемых. Параметр lParamSort соответствует lParam элементу TV_SORTCB структуры.

Пример

// Sort the item in reverse alphabetical order.
int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
   // lParamSort contains a pointer to the tree control.
   // The lParam of an item is just its handle, 
   // as specified with SetItemData
   CTreeCtrl* pmyTreeCtrl = (CTreeCtrl*)lParamSort;
   CString strItem1 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam1);
   CString strItem2 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam2);

   return strItem2.Compare(strItem1);
}

 

TVSORTCB tvs;

// Sort the tree control's items using my
// callback procedure.
tvs.hParent = TVI_ROOT;
tvs.lpfnCompare = MyCompareProc;
tvs.lParam = (LPARAM)&m_TreeCtrl;

m_TreeCtrl.SortChildrenCB(&tvs);

См. также

Пример MFC CMNCTRL1
CWnd Класса
Диаграмма иерархии
CImageList Класса