共用方式為


CMFCShellTreeCtrl 類別

類別 CMFCShellTreeCtrl 藉由顯示 Shell 專案的階層來擴充 CTreeCtrl 類別 功能。

如需詳細資訊,請參閱 Visual Studio 安裝的 VC\atlmfc\src\mfc 資料夾中的原始程式碼

語法

class CMFCShellTreeCtrl : public CTreeCtrl

成員

公用方法

名稱 描述
CMFCShellTreeCtrl::EnableShellCoNtextMenu 啟用或停用快捷方式功能表。
CMFCShellTreeCtrl::GetFlags 傳回傳遞至 IShellFolder::EnumObjects 的旗標組合。
CMFCShellTreeCtrl::GetItemPath 擷取專案的路徑。
CMFCShellTreeCtrl::GetRelatedList 傳回 CMFCShellListCtrl 類別 物件的指標 ,這個物件會與這個 CMFCShellTreeCtrl 物件一起使用,以建立類似 Explorer 的視窗。
CMFCShellTreeCtrl::OnChildNotify 這個視窗的父視窗收到套用至此視窗的通知訊息時,會呼叫此成員函式。 (覆寫 CWnd::OnChildNotify .)
CMFCShellTreeCtrl::OnGetItemIcon
CMFCShellTreeCtrl::OnGetItemText
CMFCShellTreeCtrl::Refresh 重新整理並重新繪出目前的 CMFCShellTreeCtrl 物件。
CMFCShellTreeCtrl::SelectPath 根據提供的 PIDL 或字串路徑,選取適當的樹狀目錄控制項專案。
CMFCShellTreeCtrl::SetFlags 設定旗標以篩選樹狀結構內容(類似于 所使用的 IShellFolder::EnumObjects 旗標)。
CMFCShellTreeCtrl::SetRelatedList 設定目前 CMFCShellTreeCtrl 物件與 CMFCShellListCtrl 物件之間的關聯性。

備註

此類別可讓您 CTreeCtrl 的程式在樹狀結構中包含 Windows Shell 專案,藉此擴充 類別。 這個類別可以與 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

備註

藉由搭配物件使用 CMFCShellListCtrlCMFCShellTreeCtrl 物件,您可以建立類似 Explorer 的視窗。 使用 CMFCShellTreeCtrl::SetRelatedList 方法來 建立這兩個類別的關聯。 關聯之後,架構會在變更時 CMFCShellTreeCtrl 自動更新 CMFCShellListCtrl

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

備註

這個方法會將 CMFCShellListCtrlCMFCShellTreeCtrl 產生關聯。 這些物件可能會顯示為類似 Explorer 的視窗:如果使用者選取 中的 CMFCShellTreeCtrl 物件,中的相關聯專案 CMFCShellListCtrl 將會自動更新。

使用 CMFCShellTreeCtrl::GetRelatedList 方法來 擷取 CMFCShellListCtrl 與 相關聯的 CMFCShellTreeCtrl

另請參閱

階層架構圖表
類別
CTreeCtrl 類別
CMFCShellListCtrl 類別