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


Класс CMFCShellTreeCtrl

Замечание

Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

Класс CMFCShellTreeCtrl расширяет функциональные возможности класса CTreeCtrl, отображая иерархию элементов оболочки.

Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.

Синтаксис

class CMFCShellTreeCtrl : public CTreeCtrl

Участники

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

Имя Описание
CMFCShellTreeCtrl::EnableShellContextMenu Включает или отключает контекстное меню.
CMFCShellTreeCtrl::GetFlags Возвращает сочетание флагов, передаваемых в IShellFolder::EnumObjects.
CMFCShellTreeCtrl::GetItemPath Извлекает путь к элементу.
CMFCShellTreeCtrl::GetRelatedList Возвращает указатель на объект класса CMFCShellListCtrl, который используется вместе с этим CMFCShellTreeCtrl объектом для создания окна, аналогичного проводнику.
CMFCShellTreeCtrl::OnChildNotify Эта функция-член вызывается родительским окном этого окна при получении сообщения уведомления, которое применяется к этому окну. (Переопределения CWnd::OnChildNotify.)
CMFCShellTreeCtrl::OnGetItemIcon
CMFCShellTreeCtrl::OnGetItemText
CMFCShellTreeCtrl::Refresh Обновляет и переопределяет текущий CMFCShellTreeCtrl объект.
CMFCShellTreeCtrl::SelectPath Выбирает соответствующий элемент управления деревом на основе предоставленного PIDL или строкового пути.
CMFCShellTreeCtrl::SetFlags Задает флаги для фильтрации контекста дерева (аналогично флагам, используемым IShellFolder::EnumObjects).
CMFCShellTreeCtrl::SetRelatedList Задает отношение между текущим CMFCShellTreeCtrl объектом и CMFCShellListCtrl объектом.

Замечания

Этот класс расширяет CTreeCtrl класс, позволяя программе включать элементы оболочки Windows в дерево. Этот класс можно связать с CMFCShellListCtrl объектом для создания полного окна обозревателя. Затем при выборе элемента в дереве отобразится список элементов оболочки Windows в связанном списке.

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

CObject

CCmdTarget

CWnd

CTreeCtrl

CMFCShellTreeCtrl

Требования

Заголовок: afxshelltreeCtrl.h

Пример

В следующем примере показывается, как создать объект класса CMFCShellTreeCtrl. Этот фрагмент кода является частью примера Обозревателя.

CMFCShellTreeCtrl m_wndShellTree;
// const int idTree = 1
CRect rectDummy(0, 0, 0, 0);
const DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | TVS_HASLINES |
                          TVS_LINESATROOT | TVS_HASBUTTONS;

// The this pointer points to CFolderBar class which extends the CDockablePane class
m_wndShellTree.Create(dwViewStyle, rectDummy, this, idTree);

CMFCShellTreeCtrl::EnableShellContextMenu

Включает контекстное меню.

void EnableShellContextMenu(BOOL bEnable = TRUE);

Параметры

bEnable
[in] Логическое значение, указывающее, следует ли включить контекстное меню.

CMFCShellTreeCtrl::GetFlags

Возвращает флаги, заданные для объекта класса CMFCShellTreeCtrl.

DWORD GetFlags() const;

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

Значение DWORD, указывающее сочетание флагов, заданных в данный момент.

Замечания

Флаги, заданные в объекте CMFCShellTreeCtrl , отправляются в метод IShellFolder::EnumObjects всякий раз, когда объект обновляется. Флаги можно изменить с помощью метода CMFCShellTreeCtrl::SetFlags .

CMFCShellTreeCtrl::GetItemPath

Извлекает путь элемента в объекте класса CMFCShellTreeCtrl.

BOOL GetItemPath(
    CString& strPath,
    HTREEITEM htreeItem = NULL) const;

Параметры

strPath
[out] Ссылка на строковый параметр. Метод записывает путь элемента к этому параметру.

htreeItem
[in] Метод извлекает путь для этого элемента управления деревом.

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

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

Замечания

Если этот метод завершается ошибкой, strPath содержит пустую строку.

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

CMFCShellTreeCtrl::GetRelatedList

Возвращает указатель на объект класса CMFCShellListCtrl, связанный с этим объектом CMFCShellTreeCtrl .

CMFCShellListCtrl* GetRelatedList() const;

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

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

Замечания

Используя CMFCShellListCtrl объект вместе с CMFCShellTreeCtrl объектом, можно создать окно, подобное проводнику. Используйте метод CMFCShellTreeCtrl::SetRelatedList , чтобы связать два класса. После их связи платформа автоматически обновляет CMFCShellListCtrl выбор в изменениях CMFCShellTreeCtrl .

CMFCShellTreeCtrl::OnChildNotify

virtual BOOL OnChildNotify(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pLResult);

Параметры

[in] Сообщение
[in] Wparam
[in] Lparam
[in] pLResult

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

Замечания

CMFCShellTreeCtrl::OnGetItemIcon

virtual int OnGetItemIcon(
    LPAFX_SHELLITEMINFO pItem,
    BOOL bSelected);

Параметры

[in] pItem
[in] bSelected

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

Замечания

CMFCShellTreeCtrl::OnGetItemText

virtual CString OnGetItemText(LPAFX_SHELLITEMINFO pItem);

Параметры

[in] pItem

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

Замечания

CMFCShellTreeCtrl::Refresh

Обновляет и переопределяет CMFCShellTreeCtrl.

void Refresh();

Замечания

Вызовите этот метод, чтобы обновить иерархию элементов, отображаемых в объекте CMFCShellTreeCtrl.

CMFCShellTreeCtrl::SelectPath

Выбирает элемент в классе CMFCShellTreeCtrl на основе предоставленного пути.

BOOL SelectPath(LPCTSTR lpszPath);
BOOL SelectPath(LPCITEMIDLIST lpidl);

Параметры

lpszPath
[in] Строка, указывающая путь к элементу.

lpidl
[in] PIDL, указывающий элемент

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

S_OK в случае успешного выполнения; E_FAIL в противном случае.

CMFCShellTreeCtrl::SetFlags

Задает флаги для фильтрации контекста дерева.

void SetFlags(
    DWORD dwFlags,
    BOOL bRefresh = TRUE);

Параметры

dwFlags
[in] Флаги, которые нужно задать.

bRefresh
[in] Логическое значение, указывающее, следует ли CMFCShellTreeCtrl обновляться немедленно.

Замечания

Он CMFCShellTreeCtrl передает все флаги набора в IShellFolder::EnumObjects. Дополнительные сведения о значениях различных флагов см. в разделе IShellFolder::EnumObjects.

CMFCShellTreeCtrl::SetRelatedList

Связывает объект CMFCShellListCtrl с объектом CMFCShellTreeCtrl.

void SetRelatedList(CMFCShellListCtrl* pShellList);

Параметры

pShellList
[in] Указатель на CMFCShellListCtrl объект.

Замечания

Этот метод связывает объект CMFCShellListCtrl с .CMFCShellTreeCtrl Эти объекты могут отображаться как окно обозревателя: если пользователь выбирает объект в списке CMFCShellTreeCtrl, связанные элементы в CMFCShellListCtrl ней будут автоматически обновлены.

Используйте метод CMFCShellTreeCtrl::GetRelatedList , чтобы получить связанный CMFCShellListCtrl с ним CMFCShellTreeCtrlобъект.

См. также

Диаграмма иерархии
Классы
Класс CTreeCtrl
Класс CMFCShellListCtrl