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 專案清單。
繼承階層架構
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
物件的指標。
備註
這個方法會將 CMFCShellListCtrl
與 CMFCShellTreeCtrl
產生關聯。 這些物件可能會顯示為類似 Explorer 的視窗:如果使用者選取 中的 CMFCShellTreeCtrl
物件,中的相關聯專案 CMFCShellListCtrl
將會自動更新。
使用 CMFCShellTreeCtrl::GetRelatedList 方法來擷取CMFCShellListCtrl
與 相關聯的 CMFCShellTreeCtrl
。