共用方式為


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

備註

藉由搭配物件使用 CMFCShellListCtrl CMFCShellTreeCtrl 物件,您可以建立類似 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 類別