CMFCShellTreeCtrl 类

CMFCShellTreeCtrl 类通过显示 Shell 项的层次结构扩展 CTreeCtrl Class 功能。

有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。

语法

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 对象之间的关系。

注解

此类通过使程序能够将 Windows Shell 项包含在树中来扩展 CTreeCtrl 类。 此类可与 CMFCShellListCtrl 对象相关联,以创建完整的资源管理器窗口。 随后,选择树中的项会显示关联列表中的 Windows Shell 项的列表。

继承层次结构

CObject

CCmdTarget

CWnd

CTreeCtrl

CMFCShellTreeCtrl

要求

标头:afxshelltreeCtrl.h

示例

下面的示例演示如何创建 CMFCShellTreeCtrl 类的对象。 此代码片段是 Explorer 示例的一部分。

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

返回指向与此 CMFCShellTreeCtrl 对象关联的 CMFCShellListCtrl 类对象的指针。

CMFCShellListCtrl* GetRelatedList() const;

返回值

指向与此树控件对象关联的 CMFCShellListCtrl 对象的指针。

注解

通过将 CMFCShellListCtrl 对象与 CMFCShellTreeCtrl 对象结合使用,可以创建类似于资源管理器的窗口。 使用方法 CMFCShellTreeCtrl::SetRelatedList 可关联这两个类。 关联后,如果 CMFCShellTreeCtrl 中的选择发生更改,则框架会自动更新 CMFCShellListCtrl

CMFCShellTreeCtrl::OnChildNotify

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

参数

[in] message
[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 对象的指针。

备注

此方法将 CMFCShellListCtrlCMFCShellTreeCtrl 关联。 这些对象可能显示为类似于资源管理器的窗口:如果用户在 CMFCShellTreeCtrl 中选择某个对象,则 CMFCShellListCtrl 中的关联项会自动更新。

使用方法 CMFCShellTreeCtrl::GetRelatedList 可检索与 CMFCShellTreeCtrl 关联的 CMFCShellListCtrl

另请参阅

层次结构图

CTreeCtrl 类
CMFCShellListCtrl 类