Класс 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
см. в следующей статье:
Справочник по элементу управления "Представление дерева" в пакете SDK для Windows.
Иерархия наследования
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_GETBKCOLOR
Win32, как описано в пакете 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_GETINSERTMARKCOLOR
Win32, как описано в пакете 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_GETITEMHEIGHT
Win32, как описано в пакете 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_GETLINECOLOR
Win32, как описано в пакете 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_GETSCROLLTIME
Win32, как описано в пакете 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_GETTEXTCOLOR
Win32, как описано в пакете SDK для Windows.
COLORREF GetTextColor() const;
Возвращаемое значение
Значение COLORREF
, представляющее текущий цвет текста. Если это значение равно -1, элемент управления использует системный цвет для цвета текста.
Пример
Пример см. в примере CTreeCtrl::SetTextColor
.
CTreeCtrl::GetToolTips
Эта функция-член реализует поведение сообщения TVM_GETTOOLTIPS
Win32, как описано в пакете 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
параметр содержит значение, указывающее расположение указанной точки. Возможны следующие значения:
значение | Описание |
---|---|
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_SETBKCOLOR
Win32, как описано в пакете 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);
}
Чтобы использовать флажки, установите 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_SETINSERTMARK
Win32, как описано в пакете 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_SETINSERTMARKCOLOR
Win32, как описано в пакете 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
значение, элемент или nMask
lpszItem
адрес строки, завершаемой значением NULL, pszText
и cchTextMax
элемент игнорируется. Если mask
(илиnMask
) указывает TVIF_STATE
значение, элемент или параметр указывает, какие состояния элемента следует изменить, stateMask
а state
член или nStateMask
nState
параметр содержит значения для этих состояний.
Пример
// 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_SETITEMHEIGHT
Win32, как описано в пакете 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_SETLINECOLOR
Win32, как описано в пакете SDK для Windows.
Пример
COLORREF clrPrev = m_TreeCtrl.SetLineColor(RGB(255, 0, 0));
CTreeCtrl::SetScrollTime
Вызовите эту функцию-член, чтобы задать максимальное время прокрутки для элемента управления представлением дерева.
UINT SetScrollTime(UINT uScrollTime);
Параметры
uScrollTime
Новое максимальное время прокрутки в миллисекундах. Если это значение меньше 100, оно округляется до 100.
Возвращаемое значение
Предыдущее максимальное время прокрутки в миллисекундах.
Замечания
Эта функция-член реализует поведение сообщения TVM_SETSCROLLTIME
Win32, как описано в пакете SDK для Windows.
CTreeCtrl::SetTextColor
Эта функция-член реализует поведение сообщения TVM_SETTEXTCOLOR
Win32, как описано в пакете 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_SETTOOLTIPS
Win32, как описано в пакете 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
Класс