Compartir a través de


Clase CMFCShellListCtrl

La clase CMFCShellListCtrl proporciona funcionalidad de control de lista de Windows y la expande incluyendo la capacidad para mostrar una lista de elementos de shell.

Sintaxis

class CMFCShellListCtrl : public CMFCListCtrl

Miembros

Métodos públicos

Nombre Descripción
CMFCShellListCtrl::DisplayFolder Muestra una lista de elementos incluidos en una carpeta proporcionada.
CMFCShellListCtrl::DisplayParentFolder Muestra una lista de elementos incluidos en la carpeta que es el elemento primario de la carpeta que se muestra actualmente.
CMFCShellListCtrl::EnableShellContextMenu Habilita o deshabilita el menú contextual.
CMFCShellListCtrl::GetCurrentFolder Recupera la ruta de acceso la carpeta actual.
CMFCShellListCtrl::GetCurrentFolderName Recupera el nombre de la carpeta actual.
CMFCShellListCtrl::GetCurrentItemIdList Devuelve el PIDL del elemento de control de la lista actual.
CMFCShellListCtrl::GetCurrentShellFolder Devuelve un puntero que apunta a la carpeta de Shell actual.
CMFCShellListCtrl::GetItemPath Devuelve la ruta de acceso textual de un elemento.
CMFCShellListCtrl::GetItemTypes Devuelve los tipos de elementos de Shell que muestra el control de lista.
CMFCShellListCtrl::IsDesktop Comprueba si la carpeta seleccionada actualmente es la carpeta de escritorio.
CMFCShellListCtrl::OnCompareItems El marco llama a este método cuando compara dos elementos. (Invalida CMFCListCtrl::OnCompareItems).
CMFCShellListCtrl::OnFormatFileDate Se llama cuando el marco recupera la fecha del archivo que muestra el control de lista.
CMFCShellListCtrl::OnFormatFileSize Se llama cuando el marco convierte el tamaño de archivo de un control de lista.
CMFCShellListCtrl::OnGetItemIcon Se llama cuando el marco recupera el icono de un elemento de control de lista.
CMFCShellListCtrl::OnGetItemText Se llama cuando el marco convierte el texto de un elemento de control de lista.
CMFCShellListCtrl::OnSetColumns Lo llama el marco cuando establece los nombres de las columnas.
CMFCShellListCtrl::Refresh Actualiza y vuelve a pintar el control de lista.
CMFCShellListCtrl::SetItemTypes Establece el tipo de elementos que muestra el control de lista.

Comentarios

La clase CMFCShellListCtrl amplía la funcionalidad de la clase CMFCListCtrl al permitir que el programa enumere los elementos del shell de Windows. El formato de presentación que se usa es similar al de una vista de lista de una ventana del explorador.

Un objeto CMFCShellTreeCtrl se puede asociar a un objeto CMFCShellListCtrl para crear una ventana completa del explorador. A continuación, al seleccionar un elemento en CMFCShellTreeCtrl, el objeto CMFCShellListCtrl mostrará el contenido del elemento seleccionado.

Ejemplo

En el ejemplo siguiente se muestra cómo crear un objeto de la clase CMFCShellListCtrl y cómo mostrar la carpeta primaria de la carpeta mostrada actualmente. Este fragmento de código forma parte del ejemplo del Explorador.

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

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

CMFCShellListCtrl

Requisitos

Encabezado: afxshelllistCtrl.h

CMFCShellListCtrl::DisplayFolder

Muestra una lista de elementos incluidos en la carpeta proporcionada.

virtual HRESULT DisplayFolder(LPCTSTR lpszPath);
virtual HRESULT DisplayFolder(LPAFX_SHELLITEMINFO lpItemInfo);

Parámetros

lpszPath
[in] Cadena que contiene la ruta de acceso de una carpeta.

lpItemInfo
[in] Puntero que apunta a una estructura LPAFX_SHELLITEMINFO que describe una carpeta que se va a mostrar.

Valor devuelto

S_OK si es correcto. En caso contrario, E_FAIL.

CMFCShellListCtrl::DisplayParentFolder

Actualiza el objeto CMFCShellListCtrl para mostrar la carpeta primaria de la carpeta que se muestra actualmente.

virtual HRESULT DisplayParentFolder();

Valor devuelto

S_OK si es correcto. En caso contrario, E_FAIL.

CMFCShellListCtrl::EnableShellContextMenu

Habilita el menú contextual.

void EnableShellContextMenu(BOOL bEnable = TRUE);

Parámetros

bEnable
[in] Valor booleano que especifica si el marco habilita el menú contextual.

CMFCShellListCtrl::GetCurrentFolder

Recupera la ruta de acceso de la carpeta seleccionada actualmente en el objeto CMFCShellListCtrl.

BOOL GetCurrentFolder(CString& strPath) const;

Parámetros

strPath
[out] Referencia a un parámetro de cadena donde el método escribe la ruta de acceso.

Valor devuelto

Su valor será distinto de cero en caso correcto, de lo contrario, será cero.

Comentarios

Este método produce un error si no hay ninguna carpeta seleccionada en CMFCShellListCtrl.

CMFCShellListCtrl::GetCurrentFolderName

Recupera el nombre de la carpeta seleccionada actualmente en el objeto CMFCShellListCtrl.

BOOL GetCurrentFolderName(CString& strName) const;

Parámetros

strName
[out] Referencia a un parámetro de cadena donde el método escribe el nombre.

Valor devuelto

Su valor será distinto de cero en caso correcto, de lo contrario, será cero.

Comentarios

Este método produce un error si no hay ninguna carpeta seleccionada en CMFCShellListCtrl.

CMFCShellListCtrl::GetCurrentItemIdList

Devuelve el PIDL del elemento seleccionado actualmente.

LPITEMIDLIST GetCurrentItemIdList() const;

Valor devuelto

PIDL del elemento actual.

CMFCShellListCtrl::GetCurrentShellFolder

Obtiene un puntero que apunta al elemento seleccionado actualmente en el objeto CMFCShellListCtrl.

const IShellFolder* GetCurrentShellFolder() const;

Valor devuelto

Puntero que apunta a la interfaz IShellFolder del objeto seleccionado.

Comentarios

Este método devuelve NULL si no hay ningún objeto seleccionado actualmente.

CMFCShellListCtrl::GetItemPath

Recupera la ruta de acceso de un elemento.

BOOL GetItemPath(
    CString& strPath,
    int iItem) const;

Parámetros

strPath
[out] Referencia a una cadena que recibe la ruta de acceso.

iItem
[in] Índice del elemento de lista.

Valor devuelto

TRUE en caso correcto. De lo contrario, FALSE.

Comentarios

El índice que proporciona iItem se basa en los elementos que muestra actualmente el objeto CMFCShellListCtrl Class.

CMFCShellListCtrl::GetItemTypes

Devuelve el tipo de elementos que muestra el objeto CMFCShellListCtrl.

SHCONTF GetItemTypes() const;

Valor devuelto

Valor SHCONTF que incluye el tipo de elementos enumerados en CMFCShellListCtrl.

Comentarios

Para establecer el tipo de elementos enumerados en CMFCShellListCtrl, llame a CMFCShellListCtrl::SetItemTypes.

CMFCShellListCtrl::IsDesktop

Determina si la carpeta que se muestra en el objeto CMFCShellListCtrl es la carpeta de escritorio.

BOOL IsDesktop() const;

Valor devuelto

TRUE si la carpeta mostrada es la carpeta de escritorio; FALSE en caso contrario.

CMFCShellListCtrl::OnCompareItems

Para obtener información más detallada, consulta el código fuente que se ubica en la carpeta VC\atlmfc\src\mfc de la instalación de Visual Studio.

virtual int OnCompareItems(
    LPARAM lParam1,
    LPARAM lParam2,
    int iColumn);

Parámetros

[in] lParam1
[in] lParam2
[in] iColumn

Valor devuelto

Comentarios

CMFCShellListCtrl::OnFormatFileDate

El marco llama a este método cuando debe convertir la fecha asociada a un objeto en una cadena.

virtual void OnFormatFileDate(
    const CTime& tmFile,
    CString& str);

Parámetros

tmFile
[in] Fecha asociada a un archivo.

str
[out] Cadena que incluye la fecha del archivo con formato.

Comentarios

Cuando un objeto de la clase CMFCShellListCtrl muestra la fecha asociada a un archivo, debe convertir esa fecha en un formato de cadena. CMFCShellListCtrl utiliza este método para hacer esa conversión. De forma predeterminada, este método usa la configuración regional actual para dar formato a la fecha en una cadena.

CMFCShellListCtrl::OnFormatFileSize

El marco llama a este método cuando convierte el tamaño de un objeto en una cadena.

virtual void OnFormatFileSize(
    long lFileSize,
    CString& str);

Parámetros

lFileSize
[in] Tamaño del archivo que mostrará el marco.

str
[out] Cadena que incluye el tamaño del archivo con formato.

Comentarios

Cuando un objeto de la clase CMFCShellListCtrl necesita mostrar el tamaño de un archivo, debe convertir el tamaño del archivo en un formato de cadena. CMFCShellListCtrl utiliza este método para hacer esa conversión. De forma predeterminada, este método convierte el tamaño de archivo de bytes a kilobytes y, luego, usa la configuración regional actual para dar formato al tamaño en cadena.

CMFCShellListCtrl::OnGetItemIcon

El marco llama a este método para recuperar el icono asociado a un elemento de lista de shell.

virtual int OnGetItemIcon(
    int iItem,
    LPAFX_SHELLITEMINFO pItem);

Parámetros

iItem
[in] Índice del elemento.

pItem
[in] Parámetro LPAFX_SHELLITEMINFO que describe el elemento.

Valor devuelto

Índice de la imagen del icono si se realiza correctamente; -1 si se produce un error en la función.

Comentarios

El índice de imagen de icono se basa en la lista de imágenes del sistema.

De forma predeterminada, este método se basa en el parámetro pItem. El valor de iItem no se usa en la implementación predeterminada. Puede usar iItem para implementar el comportamiento personalizado.

CMFCShellListCtrl::OnGetItemText

El marco llama a este método cuando debe recuperar el texto de un elemento de shell.

virtual CString OnGetItemText(
    int iItem,
    int iColumn,
    LPAFX_SHELLITEMINFO pItem);

Parámetros

iItem
[in] Índice del elemento.

iColumn
[in] Columna de interés.

pItem
[in] Parámetro LPAFX_SHELLITEMINFO que describe el elemento.

Valor devuelto

CString que contiene el texto asociado al elemento.

Comentarios

Cada elemento del objeto CMFCShellListCtrl puede tener texto en una o varias columnas. Cuando el marco llama a este método, especifica la columna en la que está interesado. Si llama a esta función manualmente, también debe especificar la columna que le interesa.

De forma predeterminada, este método se basa en el parámetro pItem para determinar qué elemento se va a procesar. El valor de iItem no se usa en la implementación predeterminada.

CMFCShellListCtrl::OnSetColumns

El marco llama a este método cuando establece los nombres de las columnas.

virtual void OnSetColumns();

Comentarios

De forma predeterminada, el marco crea cuatro columnas en un objeto CMFCShellListCtrl. Los nombres de estas columnas son Name, Size, Type y Modified. Puede invalidar este método para personalizar el número de columnas y sus nombres.

CMFCShellListCtrl::Refresh

Actualiza y vuelve a pintar el objeto CMFCShellListCtrl.

virtual HRESULT Refresh();

Valor devuelto

S_OK si se realiza correctamente, en caso contrario, valor de error.

Comentarios

Llame a este método para actualizar la lista de elementos que muestra el objeto CMFCShellListCtrl.

CMFCShellListCtrl::SetItemTypes

Establece el tipo de elementos que aparecen en el objeto CMFCShellListCtrl.

void SetItemTypes(SHCONTF nTypes);

Parámetros

nTypes
[in] Lista de tipos de elementos que admite el objeto CMFCShellListCtrl.

Comentarios

Para más información sobre la lista de tipos de elementos, consulte SHCONTF.

Consulte también

Gráfico de jerarquías
Clases
CMFCListCtrl (clase)
CMFCShellTreeCtrl (clase)