CMFCShellListCtrl 類別
類別 CMFCShellListCtrl
提供 Windows 清單控制件功能,並藉由包含顯示殼層項目清單的功能加以擴充。
語法
class CMFCShellListCtrl : public CMFCListCtrl
成員
公用方法
名稱 | 描述 |
---|---|
CMFCShellListCtrl::D isplayFolder | 顯示包含在所提供資料夾中的項目清單。 |
CMFCShellListCtrl::D isplayParentFolder | 顯示包含在目前顯示資料夾之父資料夾中的項目清單。 |
CMFCShellListCtrl::EnableShellContextMenu | 啟用或停用快捷方式功能表。 |
CMFCShellListCtrl::GetCurrentFolder | 擷取目前資料夾的路徑。 |
CMFCShellListCtrl::GetCurrentFolderName | 擷取目前資料夾的名稱。 |
CMFCShellListCtrl::GetCurrentItemIdList | 傳回目前清單控件專案的 PIDL。 |
CMFCShellListCtrl::GetCurrentShellFolder | 傳回目前Shell資料夾的指標。 |
CMFCShellListCtrl::GetItemPath | 傳回專案的文字路徑。 |
CMFCShellListCtrl::GetItemTypes | 傳回清單控制件所顯示的Shell項目類型。 |
CMFCShellListCtrl::IsDesktop | 檢查目前選取的資料夾是否為桌面資料夾。 |
CMFCShellListCtrl::OnCompareItems | 架構會在比較兩個專案時呼叫此方法。 (覆寫 CMFCListCtrl::OnCompareItems.) |
CMFCShellListCtrl::OnFormatFileDate | 當架構擷取清單控制項所顯示的檔案日期時呼叫。 |
CMFCShellListCtrl::OnFormatFileSize | 當架構轉換清單控制件的檔案大小時呼叫。 |
CMFCShellListCtrl::OnGetItemIcon | 當架構擷取清單控制項專案的圖示時呼叫。 |
CMFCShellListCtrl::OnGetItemText | 當架構轉換清單控制項專案的文字時呼叫。 |
CMFCShellListCtrl::OnSetColumns | 當架構設定數據行的名稱時,由架構呼叫。 |
CMFCShellListCtrl::Refresh | 重新整理並重新繪出清單控制件。 |
CMFCShellListCtrl::SetItemTypes | 設定清單控制項所顯示的項目類型。 |
備註
類別CMFCShellListCtrl
可讓您的程式列出 Windows 殼層專案,藉此擴充 CMFCListCtrl 類別的功能。 使用的顯示格式就像 [總管] 視窗的列表檢視一樣。
CMFCShellTreeCtrl 物件可以與 CMFCShellListCtrl
對象相關聯,以建立完整的 Explorer 視窗。 然後,選取 中的 CMFCShellTreeCtrl
專案會導致 CMFCShellListCtrl
物件列出所選項目的內容。
範例
下列範例示範如何建立 類別的物件 CMFCShellListCtrl
,以及如何顯示目前顯示之資料夾的父資料夾。 此代碼段是 Explorer 範例的一部分。
CMFCShellListCtrl m_wndList;
CRect rectDummy(0, 0, 0, 0);
// The this pointer points to CExplorerView class which extends the CView class.
m_wndList.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT, rectDummy, this, 1);
m_wndList.DisplayParentFolder();
繼承階層架構
CMFCShellListCtrl
需求
標頭: afxshelllistCtrl.h
CMFCShellListCtrl::D isplayFolder
顯示包含在所提供資料夾中的項目清單。
virtual HRESULT DisplayFolder(LPCTSTR lpszPath);
virtual HRESULT DisplayFolder(LPAFX_SHELLITEMINFO lpItemInfo);
參數
lpszPath
[in]包含資料夾路徑的字串。
lpItemInfo
[in]結構的指標 LPAFX_SHELLITEMINFO
,描述要顯示的資料夾。
傳回值
如果成功,S_OK;否則E_FAIL。
CMFCShellListCtrl::D isplayParentFolder
更新 CMFCShellListCtrl 物件,以顯示目前顯示之資料夾的父資料夾。
virtual HRESULT DisplayParentFolder();
傳回值
如果成功,S_OK;否則E_FAIL。
CMFCShellListCtrl::EnableShellContextMenu
啟用快捷方式功能表。
void EnableShellContextMenu(BOOL bEnable = TRUE);
參數
bEnable
[in]布爾值,指定架構是否啟用快捷方式功能表。
CMFCShellListCtrl::GetCurrentFolder
擷取 CMFCShellListCtrl 物件中目前選取資料夾的路徑。
BOOL GetCurrentFolder(CString& strPath) const;
參數
strPath
[out]方法寫入路徑之字串參數的參考。
傳回值
如果成功則為非零;否則為 0。
備註
如果 中未選取任何資料夾, CMFCShellListCtrl
這個方法就會失敗。
CMFCShellListCtrl::GetCurrentFolderName
擷取 CMFCShellListCtrl 物件中目前選取的資料夾名稱。
BOOL GetCurrentFolderName(CString& strName) const;
參數
strName
[out]方法寫入名稱之字串參數的參考。
傳回值
如果成功則為非零;否則為 0。
備註
如果 中未選取任何資料夾, CMFCShellListCtrl
這個方法就會失敗。
CMFCShellListCtrl::GetCurrentItemIdList
傳回目前選取專案的 PIDL。
LPITEMIDLIST GetCurrentItemIdList() const;
傳回值
目前專案的 PIDL。
CMFCShellListCtrl::GetCurrentShellFolder
取得 CMFCShellListCtrl 物件中目前選取專案的指標。
const IShellFolder* GetCurrentShellFolder() const;
傳回值
所選物件的 IShellFolder 介面指標。
備註
如果目前未選取任何對象,這個方法會傳回 NULL。
CMFCShellListCtrl::GetItemPath
擷取項目的路徑。
BOOL GetItemPath(
CString& strPath,
int iItem) const;
參數
strPath
[out]接收路徑之字串的參考。
iItem
[in]清單專案的索引。
傳回值
如果成功,則為 TRUE;否則為 FALSE。
備註
iItem 提供的索引是以 CMFCShellListCtrl Class 物件目前顯示的項目為基礎。
CMFCShellListCtrl::GetItemTypes
會傳回 CMFCShellListCtrl 物件所顯示的項目類型。
SHCONTF GetItemTypes() const;
傳回值
SHCONTF 值,其中包含 中列出的CMFCShellListCtrl
項目類型。
備註
若要設定 中列出的 CMFCShellListCtrl
項目類型,請呼叫 CMFCShellListCtrl::SetItemTypes。
CMFCShellListCtrl::IsDesktop
判斷 CMFCShellListCtrl 物件中顯示的資料夾是否為桌面資料夾。
BOOL IsDesktop() const;
傳回值
如果顯示的資料夾是桌面資料夾,則為TRUE;否則為 FALSE。
CMFCShellListCtrl::OnCompareItems
如需更多詳細資料,請參閱 Visual Studio 安裝位置下之 VC\atlmfc\src\mfc 資料夾中的原始程式碼。
virtual int OnCompareItems(
LPARAM lParam1,
LPARAM lParam2,
int iColumn);
參數
[in] lParam1
[in] lParam2
[in] iColumn
傳回值
備註
CMFCShellListCtrl::OnFormatFileDate
當架構必須將與 對象相關聯的日期轉換成字串時,架構會呼叫這個方法。
virtual void OnFormatFileDate(
const CTime& tmFile,
CString& str);
參數
tmFile
[in]與檔案相關聯的日期。
str
[out]包含格式化檔案日期的字串。
備註
當 CMFCShellListCtrl 類別物件顯示與檔案相關聯的日期時,它必須將該日期轉換為字串格式。 會 CMFCShellListCtrl
使用這個方法來進行該轉換。 根據預設,此方法會使用目前的地區設定,將日期格式化為字串。
CMFCShellListCtrl::OnFormatFileSize
架構會將物件的大小轉換成字串時,會呼叫這個方法。
virtual void OnFormatFileSize(
long lFileSize,
CString& str);
參數
lFileSize
[in]架構將顯示的檔案大小。
str
[out]包含格式化檔案大小的字串。
備註
當 CMFCShellListCtrl 類別物件需要顯示檔案的大小時,它必須將檔案大小轉換成字串格式。 會 CMFCShellListCtrl
使用這個方法來進行該轉換。 根據預設,這個方法會將檔案大小從位元組轉換成 KB,然後使用目前的地區設定將大小格式化為字串。
CMFCShellListCtrl::OnGetItemIcon
架構會呼叫此方法,以擷取與殼層清單專案相關聯的圖示。
virtual int OnGetItemIcon(
int iItem,
LPAFX_SHELLITEMINFO pItem);
參數
iItem
[in]專案索引。
pItem
[in]描述專案的LPAFX_SHELLITEMINFO參數。
傳回值
如果成功,圖示影像的索引;如果函式失敗,則為 -1。
備註
圖示影像索引是以系統映射清單為基礎。
根據預設,此方法依賴 pItem 參數。 iItem 的值不會用於預設實作中。 您可以使用 iItem 來實作自訂行為。
CMFCShellListCtrl::OnGetItemText
架構必須在擷取殼層專案的文字時呼叫此方法。
virtual CString OnGetItemText(
int iItem,
int iColumn,
LPAFX_SHELLITEMINFO pItem);
參數
iItem
[in]專案索引。
iColumn
[in]感興趣的數據行。
pItem
[in]描述專案的LPAFX_SHELLITEMINFO參數。
傳回值
CString
,其中包含與專案相關聯的文字。
備註
物件中的每個 CMFCShellListCtrl
專案可能都有一或多個數據行中的文字。 當架構呼叫此方法時,它會指定它感興趣的數據行。 如果您手動呼叫此函式,您也必須指定您感興趣的數據行。
根據預設,此方法會依賴 pItem 參數來判斷要處理的專案。 iItem 的值不會用於預設實作中。
CMFCShellListCtrl::OnSetColumns
架構會在設定數據行的名稱時呼叫此方法。
virtual void OnSetColumns();
備註
根據預設,架構會在物件中建立四個數據行 CMFCShellListCtrl
。 這些數據行的名稱為 Name、 Size、 Type 和 Modified。 您可以覆寫此方法,以自訂資料行數目及其名稱。
CMFCShellListCtrl::Refresh
重新整理並重新貼上 CMFCShellListCtrl 物件。
virtual HRESULT Refresh();
傳回值
S_OK
如果成功,則為 ;否則為錯誤值。
備註
呼叫此方法以重新整理 物件所 CMFCShellListCtrl
顯示的項目清單。
CMFCShellListCtrl::SetItemTypes
設定 CMFCShellListCtrl 物件中列出的項目類型。
void SetItemTypes(SHCONTF nTypes);
參數
nTypes
[in]物件支援的項目類型 CMFCShellListCtrl
清單。
備註
如需專案類型清單的詳細資訊,請參閱 SHCONTF。