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
。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應