共用方式為


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();

繼承階層架構

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

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

另請參閱

階層架構圖表
類別
CMFCListCtrl 類別
CMFCShellTreeCtrl 類別