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