Класс 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();
Иерархия наследования
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