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


Класс CMFCShellTreeCtrl

Класс 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 Class
Класс CMFCShellListCtrl