Поделиться через


Класс CMFCShellListCtrl

Класс CMFCShellListCtrl предоставляет функции управления списками Windows и расширяет его, включая возможность отображения списка элементов оболочки.

Синтаксис

class CMFCShellListCtrl : public CMFCListCtrl

Участники

Открытые методы

Имя Описание
CMFCShellListCtrl::D isplayFolder Отображает список элементов, содержащихся в предоставленной папке.
CMFCShellListCtrl::D isplayParentFolder Отображает список элементов, содержащихся в папке, которая является родительским элементом текущей отображаемой папки.
CMFCShellListCtrl::EnableShellContextMenu Включает или отключает контекстное меню.
CMFCShellListCtrl::GetCurrentFolder Извлекает путь к текущей папке.
CMFCShellListCtrl::GetCurrentFolderName Извлекает имя текущей папки.
CMFCShellListCtrl::GetCurrentItemIdList Возвращает PIDL текущего элемента управления списком.
CMFCShellListCtrl::GetCurrentShellFolder Возвращает указатель на текущую папку Оболочки.
CMFCShellListCtrl::GetItemPath Возвращает текстовый путь элемента.
CMFCShellListCtrl::GetItemTypes Возвращает типы элементов оболочки, отображаемые элементом управления списком.
CMFCShellListCtrl::IsDesktop Проверяет, является ли выбранная в данный момент папка настольным компьютером.
CMFCShellListCtrl::OnCompareItems Платформа вызывает этот метод при сравнении двух элементов. (Переопределения CMFCListCtrl::OnCompareItems.)
CMFCShellListCtrl::OnFormatFileDate Вызывается, когда платформа получает дату файла, отображаемую элементом управления списком.
CMFCShellListCtrl::OnFormatFileSize Вызывается, когда платформа преобразует размер файла элемента управления списком.
CMFCShellListCtrl::OnGetItemIcon Вызывается, когда платформа получает значок элемента управления списком.
CMFCShellListCtrl::OnGetItemText Вызывается, когда платформа преобразует текст элемента управления списком.
CMFCShellListCtrl::OnSetColumns Вызывается платформой при установке имен столбцов.
CMFCShellListCtrl::Refresh Обновляет и переопределяет элемент управления списком.
CMFCShellListCtrl::SetItemTypes Задает тип элементов, отображаемых элементом управления списком.

Замечания

Класс CMFCShellListCtrl расширяет функциональные возможности класса CMFCListCtrl, позволяя программе перечислять элементы оболочки Windows. Используемый формат отображения похож на представление списка для окна обозревателя.

Объект CMFCShellTreeCtrl может быть связан с CMFCShellListCtrl объектом для создания полного окна обозревателя. Затем выбор элемента в CMFCShellTreeCtrl объекте приведет CMFCShellListCtrl к перечислению содержимого выбранного элемента.

Пример

В следующем примере показано, как создать объект CMFCShellListCtrl класса и как отобразить родительскую папку текущей отображаемой папки. Этот фрагмент кода является частью примера Обозревателя.

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.

CMFCShellListCtrl::GetItemTypes

Возвращает тип элементов, отображаемых объектом CMFCShellListCtrl .

SHCONTF GetItemTypes() const;

Возвращаемое значение

Значение SHCONTF, содержащее тип элементов, перечисленных в спискеCMFCShellListCtrl.

Замечания

Чтобы задать тип элементов, перечисленных в списке CMFCShellListCtrl, вызовите CMFCShellListCtrl::SetItemTypes.

CMFCShellListCtrl::IsDesktop

Определяет, является ли папка, отображаемая в объекте CMFCShellListCtrl , папкой рабочего стола.

BOOL IsDesktop() const;

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если отображаемая папка является папкой рабочего стола; Значение FALSE в противном случае.

CMFCShellListCtrl::OnCompareItems

Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.

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 метод используется для преобразования. По умолчанию этот метод преобразует размер файла из байтов в килобайты, а затем использует текущий языковой стандарт для форматирования размера в строку.

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