Clase CListCtrl
Encapsula la funcionalidad de un "control de vista de lista", que muestra una colección de elementos cada uno de los cuales consta de un icono (de una lista de imágenes) y una etiqueta.
Sintaxis
class CListCtrl : public CWnd
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CListCtrl::CListCtrl |
Construye un objeto CListCtrl . |
Métodos públicos
Nombre | Descripción |
---|---|
CListCtrl::ApproximateViewRect |
Determina el ancho y el alto necesarios para mostrar los elementos de un control de vista de lista. |
CListCtrl::Arrange |
Alinea los elementos de una cuadrícula. |
CListCtrl::CancelEditLabel |
Cancela la operación de edición de texto del elemento. |
CListCtrl::Create |
Crea un control de lista y lo asocia a un objeto CListCtrl . |
CListCtrl::CreateDragImage |
Crea una lista de imágenes de arrastre para un elemento especificado. |
CListCtrl::CreateEx |
Crea un control de lista con los estilos extendidos de Windows especificados y lo asocia a un objeto CListCtrl . |
CListCtrl::DeleteAllItems |
Elimina todos los elementos del control. |
CListCtrl::DeleteColumn |
Elimina una columna del control de vista de lista. |
CListCtrl::DeleteItem |
Elimina un elemento del control. |
CListCtrl::DrawItem |
Se llama cuando cambia la apariencia de un control dibujado por el propietario. |
CListCtrl::EditLabel |
Comienza la edición en contexto del texto de un elemento. |
CListCtrl::EnableGroupView |
Habilita o deshabilita si los elementos de un control de vista de lista se muestran como un grupo. |
CListCtrl::EnsureVisible |
Garantiza que un elemento esté visible. |
CListCtrl::FindItem |
Busca un elemento de vista de lista con características especificadas. |
CListCtrl::GetBkColor |
Recupera el color de fondo de un control de vista de lista. |
CListCtrl::GetBkImage |
Recupera la imagen de fondo actual de un control de vista de lista. |
CListCtrl::GetCallbackMask |
Recupera la máscara de devolución de llamada de un control de vista de lista. |
CListCtrl::GetCheck |
Recupera el estado de presentación actual de la imagen de estado asociada a un elemento. |
CListCtrl::GetColumn |
Recupera los atributos de la columna de un control. |
CListCtrl::GetColumnOrderArray |
Recupera el orden de columna (de izquierda a derecha) de un control de vista de lista. |
CListCtrl::GetColumnWidth |
Recupera el ancho de una columna en la vista de informe o vista de lista. |
CListCtrl::GetCountPerPage |
Calcula el número de elementos que pueden caber verticalmente en un control de vista de lista. |
CListCtrl::GetEditControl |
Recupera el manipulador del control de edición usado para editar el texto de un elemento. |
CListCtrl::GetEmptyText |
Recupera la cadena que se va a mostrar si el control de vista de lista actual está vacío. |
CListCtrl::GetExtendedStyle |
Recupera los estilos extendidos actuales de un control de vista de lista. |
CListCtrl::GetFirstSelectedItemPosition |
Recupera la posición del primer elemento de vista de lista seleccionado de un control de vista de lista. |
CListCtrl::GetFocusedGroup |
Recupera el grupo que tiene el foco del teclado en el control de vista de lista actual. |
CListCtrl::GetGroupCount |
Recupera el número de grupos del control de vista de lista actual. |
CListCtrl::GetGroupInfo |
Obtiene la información de un grupo especificado del control de vista de lista. |
CListCtrl::GetGroupInfoByIndex |
Recupera la información sobre un grupo especificado del control de vista de lista actual. |
CListCtrl::GetGroupMetrics |
Recupera las métricas de un grupo. |
CListCtrl::GetGroupRect |
Recupera el rectángulo delimitador de un grupo especificado del control de vista de lista actual. |
CListCtrl::GetGroupState |
Recupera el estado de un grupo especificado del control de vista de lista actual. |
CListCtrl::GetHeaderCtrl |
Recupera el control de encabezado de un control de vista de lista. |
CListCtrl::GetHotCursor |
Recupera el cursor utilizado cuando el seguimiento activo está habilitado para un control de vista de lista. |
CListCtrl::GetHotItem |
Recupera el elemento de vista de lista actualmente bajo el cursor. |
CListCtrl::GetHoverTime |
Recupera el tiempo actual del movimiento del mouse de un control de vista de lista. |
CListCtrl::GetImageList |
Recupera el manipulador de una lista de imágenes utilizada para dibujar elementos de vista de lista. |
CListCtrl::GetInsertMark |
Recupera la posición actual de la marca de inserción. |
CListCtrl::GetInsertMarkColor |
Recupera el color actual de la marca de inserción. |
CListCtrl::GetInsertMarkRect |
Recupera el rectángulo que enlaza el punto de inserción. |
CListCtrl::GetItem |
Recupera los atributos de un elemento de vista de lista. |
CListCtrl::GetItemCount |
Recupera el número de elementos de un control de vista de lista. |
CListCtrl::GetItemData |
Recupera el valor específico de la aplicación asociado a un elemento. |
CListCtrl::GetItemIndexRect |
Recupera el rectángulo delimitador para todo un subelemento o parte de este en el control de vista de lista actual. |
CListCtrl::GetItemPosition |
Recupera la posición de un elemento de vista de lista. |
CListCtrl::GetItemRect |
Recupera el rectángulo delimitador de un elemento. |
CListCtrl::GetItemSpacing |
Calcula el espaciado entre los elementos del control de vista de lista actual. |
CListCtrl::GetItemState |
Recupera el estado de un elemento de vista de lista. |
CListCtrl::GetItemText |
Recupera el texto de un elemento o subelemento de vista de lista. |
CListCtrl::GetNextItem |
Busca un elemento de vista de lista con propiedades especificadas y con la relación especificada con un elemento determinado. |
CListCtrl::GetNextItemIndex |
Recupera el índice del elemento del control de vista de lista actual que tiene un conjunto especificado de propiedades. |
CListCtrl::GetNextSelectedItem |
Recupera el índice de una posición de elemento de vista de lista y la posición del siguiente elemento de vista de lista seleccionado para iterar. |
CListCtrl::GetNumberOfWorkAreas |
Recupera el número actual de áreas de trabajo de un control de vista de lista. |
CListCtrl::GetOrigin |
Recupera el origen de la vista actual de un control de vista de lista. |
CListCtrl::GetOutlineColor |
Recupera el color del borde de un control de vista de lista. |
CListCtrl::GetSelectedColumn |
Recupera el índice de la columna seleccionada actualmente en el control de lista. |
CListCtrl::GetSelectedCount |
Recupera el número de elementos seleccionados en el control de vista de lista. |
CListCtrl::GetSelectionMark |
Recupera la marca de selección de un control de vista de lista. |
CListCtrl::GetStringWidth |
Determina el ancho de columna mínimo necesario para mostrar toda una cadena determinada. |
CListCtrl::GetSubItemRect |
Recupera el rectángulo delimitador de un elemento de un control de vista de lista. |
CListCtrl::GetTextBkColor |
Recupera el color de fondo del texto de un control de vista de lista. |
CListCtrl::GetTextColor |
Recupera el color de texto de un control de vista de lista. |
CListCtrl::GetTileInfo |
Recupera información sobre un mosaico de un control de vista de lista. |
CListCtrl::GetTileViewInfo |
Recupera información sobre un control de vista de lista en la vista de mosaico. |
CListCtrl::GetToolTips |
Recupera el control de información sobre herramientas que usa el control de vista de lista para mostrar información sobre herramientas. |
CListCtrl::GetTopIndex |
Recupera el índice del elemento visible de nivel superior. |
CListCtrl::GetView |
Obtiene la vista del control de vista de lista. |
CListCtrl::GetViewRect |
Recupera el rectángulo delimitador de todos los elementos del control de vista de lista. |
CListCtrl::GetWorkAreas |
Recupera las áreas de trabajo actuales de un control de vista de lista. |
CListCtrl::HasGroup |
Determina si el control de vista de lista tiene el grupo especificado. |
CListCtrl::HitTest |
Determina qué elemento de vista de lista está en una posición especificada. |
CListCtrl::InsertColumn |
Inserta una columna nueva en un control de vista de lista. |
CListCtrl::InsertGroup |
Inserta un grupo en el control de vista de lista. |
CListCtrl::InsertGroupSorted |
Inserta el grupo especificado en una lista ordenada de grupos. |
CListCtrl::InsertItem |
Inserta un elemento nuevo en un control de vista de lista. |
CListCtrl::InsertMarkHitTest |
Recupera el punto de inserción más cercano a un punto especificado. |
CListCtrl::IsGroupViewEnabled |
Determina si la vista de grupo está habilitada para un control de vista de lista. |
CListCtrl::IsItemVisible |
Indica si un elemento especificado en el control de vista de lista actual está visible. |
CListCtrl::MapIDToIndex |
Asigna el identificador único de un elemento del control de vista de lista actual a un índice. |
CListCtrl::MapIndexToID |
Asigna el índice de un elemento del control de vista de lista actual a un identificador único. |
CListCtrl::MoveGroup |
Mueve el grupo especificado. |
CListCtrl::MoveItemToGroup |
Mueve el grupo especificado al índice de base cero especificado del control de vista de lista. |
CListCtrl::RedrawItems |
Fuerza un control de vista de lista para volver a dibujar un intervalo de elementos. |
CListCtrl::RemoveAllGroups |
Quita todos los grupos de un control de vista de lista. |
CListCtrl::RemoveGroup |
Quita el grupo especificado del control de vista de lista. |
CListCtrl::Scroll |
Desplaza el contenido de un control de vista de lista. |
CListCtrl::SetBkColor |
Establece el color de fondo del control de vista de lista. |
CListCtrl::SetBkImage |
Establece la imagen de fondo actual de un control de vista de lista. |
CListCtrl::SetCallbackMask |
Establece la máscara de devolución de llamada de un control de vista de lista. |
CListCtrl::SetCheck |
Establece el estado de presentación actual de la imagen de estado asociada a un elemento. |
CListCtrl::SetColumn |
Establece los atributos de una columna de vista de lista. |
CListCtrl::SetColumnOrderArray |
Establece el orden de columna (de izquierda a derecha) de un control de vista de lista. |
CListCtrl::SetColumnWidth |
Cambia el ancho de una columna en la vista de informe o vista de lista. |
CListCtrl::SetExtendedStyle |
Establece los estilos extendidos actuales de un control de vista de lista. |
CListCtrl::SetGroupInfo |
Establece la información del grupo especificado de un control de vista de lista. |
CListCtrl::SetGroupMetrics |
Establece las métricas de grupo de un control de vista de lista. |
CListCtrl::SetHotCursor |
Establece el cursor utilizado cuando el seguimiento activo está habilitado para un control de vista de lista. |
CListCtrl::SetHotItem |
Establece el elemento activo actual de un control de vista de lista. |
CListCtrl::SetHoverTime |
Establece el tiempo actual del movimiento del mouse de un control de vista de lista. |
CListCtrl::SetIconSpacing |
Establece el espaciado entre iconos de un control de vista de lista. |
CListCtrl::SetImageList |
Asigna una lista de imágenes a un control de vista de lista. |
CListCtrl::SetInfoTip |
Establece el texto de la información sobre herramientas. |
CListCtrl::SetInsertMark |
Establece el punto de inserción en la posición definida. |
CListCtrl::SetInsertMarkColor |
Establece el color del punto de inserción. |
CListCtrl::SetItem |
Establece algunos o todos los atributos de un elemento de vista de lista. |
CListCtrl::SetItemCount |
Prepara un control de vista de lista para agregar una gran cantidad de elementos. |
CListCtrl::SetItemCountEx |
Establece el recuento de elementos de un control de vista de lista virtual. |
CListCtrl::SetItemData |
Establece el valor específico de la aplicación del elemento. |
CListCtrl::SetItemIndexState |
Establece el estado de un elemento del control de vista de lista actual. |
CListCtrl::SetItemPosition |
Mueve un elemento a una posición especificada en un control de vista de lista. |
CListCtrl::SetItemState |
Cambia el estado de un elemento en un control de vista de lista. |
CListCtrl::SetItemText |
Cambia el texto de un elemento de vista de lista o subelemento. |
CListCtrl::SetOutlineColor |
Establece el color del borde de un control de vista de lista. |
CListCtrl::SetSelectedColumn |
Establece la columna seleccionada del control de vista de lista. |
CListCtrl::SetSelectionMark |
Establece la marca de selección de un control de vista de lista. |
CListCtrl::SetTextBkColor |
Establece el color de fondo del texto en un control de vista de lista. |
CListCtrl::SetTextColor |
Establece el color de texto de un control de vista de lista. |
CListCtrl::SetTileInfo |
Establece la información de un mosaico del control de vista de lista. |
CListCtrl::SetTileViewInfo |
Establece la información que usa un control de vista de lista en la vista de mosaico. |
CListCtrl::SetToolTips |
Establece el control de la información sobre herramientas que usará el control de vista de lista para mostrar información sobre herramientas. |
CListCtrl::SetView |
Establece la vista del control de vista de lista. |
CListCtrl::SetWorkAreas |
Establece el área donde se pueden mostrar los iconos en un control de vista de lista. |
CListCtrl::SortGroups |
Ordena los grupos de un control de vista de lista con una función definida por el usuario. |
CListCtrl::SortItems |
Ordena los elementos de vista de lista mediante una función de comparación definida por la aplicación. |
CListCtrl::SortItemsEx |
Ordena los elementos de vista de lista mediante una función de comparación definida por la aplicación. |
CListCtrl::SubItemHitTest |
Determina qué elemento de vista de lista, si existe, está en una posición determinada. |
CListCtrl::Update |
Fuerza al control a volver a dibujar un elemento especificado. |
Comentarios
Además de un icono y una etiqueta, cada elemento puede tener información mostrada en columnas a la derecha del icono y la etiqueta. Este control (y, por tanto, la clase CListCtrl
) solo está disponible para los programas que se ejecutan en Windows 95/98 y Windows NT 3.51 y posteriores.
A continuación, se muestra una breve introducción a la clase CListCtrl
. Para obtener una explicación detallada de los conceptos, consulte Uso de CListCtrl
y Controles.
Vistas
Los controles de vista de lista pueden mostrar su contenido de cuatro maneras diferentes, denominadas "vistas".
Vista de icono
Cada elemento aparece como un icono de tamaño completo (32 x 32 píxeles) con una etiqueta debajo. El usuario puede arrastrar los elementos a cualquier ubicación de la ventana de vista de lista.
Vista de icono pequeño
Cada elemento aparece como un icono pequeño (16 x 16 píxeles) con la etiqueta situada a la derecha. El usuario puede arrastrar los elementos a cualquier ubicación de la ventana de vista de lista.
Vista de lista
Cada elemento aparece como un icono pequeño con una etiqueta a la derecha. Los elementos se organizan en columnas y no se pueden arrastrar a ninguna ubicación de la ventana de vista de lista.
Vista de informe
Cada elemento aparece en su propia línea, con información adicional organizada en columnas a la derecha. La columna situada más a la izquierda contiene el icono pequeño y una etiqueta, y las columnas siguientes contienen los subelementos especificados por la aplicación. Un control de encabezado incrustado (clase
CHeaderCtrl
) implementa estas columnas. Para más información sobre el control de encabezado y columnas de una vista de informe, consulte Uso deCListCtrl
: Adición de columnas al control (vista de informe).
El estilo de la vista de lista actual del control determina la vista actual. Para más información sobre estos estilos y su uso, consulte Uso de CListCtrl
: Cambio de estilos del control de lista.
Estilos extendidos
Además de los estilos de lista estándar, la clase CListCtrl
admite un gran conjunto de estilos extendidos, lo que proporciona funcionalidad enriquecida. Algunos ejemplos de esta funcionalidad incluyen:
Selección mediante movimiento del mouse
Cuando se habilita, permite la selección automática de un elemento cuando el cursor permanece sobre el elemento durante un período determinado.
Vistas de lista virtual
Cuando se habilita, permite que el control admita hasta elementos DWORD. Esto es posible al colocar la sobrecarga de administrar los datos de elementos en la aplicación. Excepto para la selección de elementos e información de foco, la aplicación debe administrar toda la información del elemento. Para más información, consulte Uso de
CListCtrl
: Controles de lista virtual.Activación de uno y dos clics
Cuando se habilita, permite el seguimiento activo (resaltado automático del texto del elemento) y la activación de uno o dos clics del elemento resaltado.
Ordenación de columnas mediante arrastrar y colocar
Cuando se habilita, permite el reordenamiento de columnas mediante arrastrar y colocar en un control de vista de lista. Solo está disponible en la vista de informe.
Para información sobre el uso de estos nuevos estilos extendidos, consulte Uso de CListCtrl
: Cambio de estilos de control de lista.
Elementos y subelementos
Cada elemento de un control de vista de lista consta de un icono (de una lista de imágenes), una etiqueta, un estado actual y un valor definido por la aplicación (denominados "datos de elemento"). Uno o varios subelementos también se pueden asociar a cada elemento. Un "subelemento" es una cadena que, en la vista de informe, se puede mostrar en una columna a la derecha del icono y la etiqueta de un elemento. Todos los elementos de un control de vista de lista deben tener el mismo número de subelementos.
La clase CListCtrl
proporciona varias funciones para insertar, eliminar, buscar y modificar estos elementos. Para más información, consulte CListCtrl::GetItem
, CListCtrl::InsertItem
y CListCtrl::FindItem
, Agregar elementos al control y Desplazamiento, organización, ordenación y búsqueda en los controles de lista.
De forma predeterminada, el control de vista de lista es responsable de almacenar los atributos de texto e icono de un elemento. Sin embargo, además de estos tipos de elementos, la clase CListCtrl
admite "elementos de devolución de llamada". Un "elemento de devolución de llamada" es un elemento de vista de lista para el que la aplicación, en lugar del control, almacena el texto, el icono o ambos. Se usa una máscara de devolución de llamada para especificar qué atributos de elemento (texto o icono) proporciona la aplicación. Si una aplicación usa elementos de devolución de llamada, debe poder proporcionar los atributos de texto o icono a petición. Los elementos de devolución de llamada son útiles cuando la aplicación ya mantiene parte de esta información. Para más información, consulte Uso de CListCtrl
: Elementos de devolución de llamada y máscara de devolución de llamada.
Listas de imágenes
Los iconos, las imágenes de elementos de encabezado y los estados definidos por la aplicación de los elementos de vista de lista se encuentran en varias listas de imágenes (implementadas por la clase CImageList
), que se crean y asignan al control de vista de lista. Cada control de vista de lista puede tener hasta cuatro tipos diferentes de listas de imágenes:
Icono grande
Se usa en la vista de iconos para iconos de tamaño completo.
Icono pequeño
Se usa en las vistas de icono pequeño, lista e informe para versiones más pequeñas de los iconos usados en la vista de iconos.
Estado definido por la aplicación
Contiene imágenes de estado que se muestran junto al icono de un elemento para indicar un estado definido por la aplicación.
Elemento de encabezado
Se usa en la vista de informe para imágenes pequeñas que aparecen en cada elemento de control de encabezado.
De forma predeterminada, un control de vista de lista destruye las listas de imágenes asignadas cuando se destruye, sin embargo, el desarrollador puede personalizar este comportamiento al destruir cada lista de imágenes cuando ya no se usa, según lo determinado por la aplicación. Para más información, consulte Uso de CListCtrl
: Elementos de lista y listas de imágenes.
Jerarquía de herencia
CListCtrl
Requisitos
Encabezado: afxcmn.h
CListCtrl::ApproximateViewRect
Determina el ancho y el alto necesarios para mostrar los elementos de un control de vista de lista.
CSize ApproximateViewRect(
CSize sz = CSize(-1, -1),
int iCount = -1) const;
Parámetros
sz
Dimensiones propuestas del control, en píxeles. Si no se especifican las dimensiones, el marco usa los valores de ancho o alto actuales del control.
iCount
Cantidad de elementos que se mostrarán en el control. Pase -1 para usar el número total de elementos que se encuentran actualmente en el control.
Valor devuelto
Objeto CSize
que contiene el ancho y alto aproximados necesarios para mostrar los elementos, en píxeles.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_ApproximateViewRect
, tal y como se describe en Windows SDK.
CListCtrl::Arrange
Cambia la posición de los elementos de una vista de icono para que se alineen en una cuadrícula.
BOOL Arrange(UINT nCode);
Parámetros
nCode
Especifica el estilo de alineación de los elementos. Puede ser uno de los siguientes valores:
LVA_ALIGNLEFT
Alinea los elementos a lo largo del borde izquierdo de la ventana.LVA_ALIGNTOP
Alinea los elementos a lo largo del borde superior de la ventana.LVA_DEFAULT
Alinea los elementos según los estilos de alineación actuales de la vista de lista (el valor predeterminado).LVA_SNAPTOGRID
Ajusta todos los iconos a la posición de cuadrícula más cercana.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
El parámetro nCode
especifica el estilo de alineación.
Ejemplo
// Align all of the list view control items along the top
// of the window (the list view control must be in icon or
// small icon mode).
m_myListCtrl.Arrange(LVA_ALIGNTOP);
CListCtrl::CancelEditLabel
Cancela la operación de edición de texto del elemento.
void CancelEditLabel();
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_CANCELEDITLABEL
, tal como se describe en Windows SDK.
CListCtrl::CListCtrl
Construye un objeto CListCtrl
.
CListCtrl();
CListCtrl::Create
Crea un control de lista y lo asocia a un objeto CListCtrl
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parámetros
dwStyle
Especifica el estilo del control de lista. Aplique al control cualquier combinación de estilos de control de lista. Consulte Estilos de la ventana de vista de lista en Windows SDK para obtener una lista completa de estos estilos. Establece estilos extendidos específicos de un control mediante SetExtendedStyle
.
rect
Especifica el tamaño y la posición del control de lista. Puede ser un objeto CRect
o una estructura RECT
.
pParentWnd
Especifica la ventana primaria del control de lista, normalmente CDialog
. No debe ser NULL.
nID
Especifica el identificador del control de lista.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
El proceso de construcción de un elemento CListCtrl
se divide en dos pasos. En primer lugar, llame al constructor y, luego, a Create
, lo que crea el control de vista de lista y lo asocia al objeto CListCtrl
.
Para aplicar estilos extendidos de Windows al objeto de control de lista, llame a CreateEx
en lugar de Create
.
Ejemplo
m_myListCtrl.Create(
WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_EDITLABELS,
CRect(10,10,400,200), pParentWnd, IDD_MYLISTCTRL);
CListCtrl::CreateEx
Esta función puede usarse para crear un control (una ventana secundaria) y asociarlo con el objeto CListCtrl
.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parámetros
dwExStyle
El valor de este parámetro se usa para especificar el estilo extendido del control que se va a crear. Para obtener una lista de estilos extendidos de Windows, consulte el parámetro dwExStyle de la función CreateWindowEx
en Windows SDK.
dwStyle
Especifica el estilo del control de lista. Aplique al control cualquier combinación de estilos de control de lista. Para obtener una lista completa de estos estilos, consulte Estilos de la ventana de vista de lista en Windows SDK.
rect
Una referencia a una estructura RECT
describiendo el tamaño y la posición de la ventana a crear, en las coordenadas cliente de pParentWnd
.
pParentWnd
Un puntero a la ventana que constituye el elemento primario del control.
nID
El identificador de ventana secundaria del control.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Usa la función CreateEx
, en lugar de Create
, para aplicar estilos extendidos de Windows. Estos se especifican en el prefacio de estilo extendido WS_EX_
de Windows.
CreateEx
crea el control con los estilos de extendidos de Windows especificados por dwExStyle
. Para establecer estilos extendidos específicos de un control, llame a SetExtendedStyle
. Por ejemplo, use CreateEx
para establecer estilos como WS_EX_CONTEXTHELP, pero use SetExtendedStyle
para establecer estilos como LVS_EX_FULLROWSELECT. Para más información, consulte los estilos descritos en el artículo Estilos extendidos de vista de lista en Windows SDK.
CListCtrl::CreateDragImage
Crea una lista de imágenes de arrastre para el elemento especificado por nItem
.
CImageList* CreateDragImage(
int nItem,
LPPOINT lpPoint);
Parámetros
*nItem*
Índice del elemento cuya lista de imágenes de arrastre se va a crear.
lpPoint
Dirección de una estructura POINT
que recibe la ubicación inicial de la esquina superior izquierda de la imagen, en coordenadas de vista.
Valor devuelto
Puntero que apunta a la lista de imágenes de arrastre si se ejecuta correctamente; de lo contrario, NULL
.
Comentarios
El objeto CImageList
es permanente y debe eliminarlo cuando termine. Por ejemplo:
CImageList* pImageList = m_myListCtrl.CreateDragImage(nItem, &point);
// do something
delete pImageList;
CListCtrl::DeleteAllItems
Elimina todos los elementos del control de vista de lista.
BOOL DeleteAllItems();
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Ejemplo
// Delete all of the items from the list view control.
m_myListCtrl.DeleteAllItems();
ASSERT(m_myListCtrl.GetItemCount() == 0);
CListCtrl::DeleteColumn
Elimina una columna del control de vista de lista.
BOOL DeleteColumn(int nCol);
Parámetros
nCol
Índice de la columna que se va a eliminar.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Ejemplo
int nColumnCount = m_myListCtrl.GetHeaderCtrl()->GetItemCount();
// Delete all of the columns.
for (int i=0; i < nColumnCount; i++)
{
m_myListCtrl.DeleteColumn(0);
}
CListCtrl::DeleteItem
Elimina un elemento de un control de vista de lista.
BOOL DeleteItem(int nItem);
Parámetros
nItem
Especifica el índice del elemento de lista que se va a eliminar.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Ejemplo
int nCount = m_myListCtrl.GetItemCount();
// Delete all of the items from the list view control.
for (int i=0; i < nCount; i++)
{
m_myListCtrl.DeleteItem(0);
}
CListCtrl::DrawItem
Lo llama el marco de trabajo cuando cambia un aspecto visual de un control de vista de lista dibujado por el propietario.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parámetros
lpDrawItemStruct
Puntero largo a una estructura DRAWITEMSTRUCT
que contiene información sobre el tipo de dibujo necesario.
Comentarios
El miembro itemAction
de la estructura DRAWITEMSTRUCT
define la acción de dibujo que se realizará.
De manera predeterminada, esta función miembro no hace nada. Invalida esta función miembro para implementar el dibujo de un objeto CListCtrl
dibujado por el propietario.
La aplicación debe restaurar todos los objetos de interfaz de dispositivo gráfico (GDI) seleccionados para el contexto de presentación proporcionado en lpDrawItemStruct
antes de que finalice esta función miembro.
CListCtrl::EditLabel
Comienza la edición en contexto del texto de un elemento.
CEdit* EditLabel(int nItem);
Parámetros
nItem
Índice del elemento de vista de lista que se va a editar.
Valor devuelto
Si se ejecuta correctamente, un puntero apunta al objeto CEdit
que se usa para editar el texto del elemento, de lo contrario NULL
.
Comentarios
Un control de vista de lista que tiene el estilo de ventana LVS_EDITLABELS
permite a un usuario editar etiquetas de elementos en contexto. El usuario comienza a editar al hacer clic en la etiqueta de un elemento que tiene el foco.
Use esta función para comenzar la edición en contexto del texto del elemento de vista de lista especificado.
Ejemplo
// Make sure the focus is set to the list view control.
m_myListCtrl.SetFocus();
// Show the edit control on the label of the first
// item in the list view control.
CEdit* pmyEdit = m_myListCtrl.EditLabel(1);
ASSERT(pmyEdit != NULL);
CListCtrl::EnableGroupView
Habilita o deshabilita si los elementos de un control de vista de lista se muestran como un grupo.
LRESULT EnableGroupView(BOOL fEnable);
Parámetros
fEnable
Indica si se va a habilitar un control de vista de lista para agrupar los elementos mostrados. TRUE
para habilitar la agrupación; FALSE
para deshabilitarla.
Valor devuelto
Devuelve uno de los valores siguientes:
- 0 La capacidad de mostrar elementos de vista de lista como un grupo ya está habilitada o deshabilitada.
- 1 El estado del control se cambió correctamente.
- -1 Error en la operación.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_ENABLEGROUPVIEW
, tal como se describe en Windows SDK.
CListCtrl::EnsureVisible
Garantiza que un elemento de vista de lista sea al menos visible parcialmente.
BOOL EnsureVisible(
int nItem,
BOOL bPartialOK);
Parámetros
nItem
Índice del elemento de vista de lista que se va a ver.
bPartialOK
Especifica si la visibilidad parcial es aceptable.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
El control de vista de lista se desplaza si es necesario. Si el parámetro bPartialOK no es cero, no se produce ningún desplazamiento si el elemento está parcialmente visible.
Ejemplo
// Ensure that the last item is visible.
int nCount = m_myListCtrl.GetItemCount();
if (nCount > 0)
m_myListCtrl.EnsureVisible(nCount-1, FALSE);
CListCtrl::FindItem
Busca un elemento de vista de lista con características especificadas.
int FindItem(
LVFINDINFO* pFindInfo,
int nStart = -1) const;
Parámetros
pFindInfo
Puntero que apunta a una estructura LVFINDINFO
que contiene información sobre el elemento que se va a buscar.
nStart
Índice del elemento con el que se va a comenzar la búsqueda o -1 para empezar desde el principio. El elemento en nStart
se excluye de la búsqueda si nStart
no es igual a -1.
Valor devuelto
Índice del elemento si se ejecuta correctamente o -1 en caso contrario.
Comentarios
El parámetro pFindInfo
apunta a una estructura LVFINDINFO
, que contiene información utilizada para buscar un elemento de vista de lista.
Ejemplo
LVFINDINFO info;
int nIndex;
info.flags = LVFI_PARTIAL|LVFI_STRING;
info.psz = _T("item");
// Delete all of the items that begin with the string.
while ((nIndex = m_myListCtrl.FindItem(&info)) != -1)
{
m_myListCtrl.DeleteItem(nIndex);
}
CListCtrl::GetBkColor
Recupera el color de fondo de un control de vista de lista.
COLORREF GetBkColor() const;
Valor devuelto
Valor de 32 bits usado para especificar un color RGB.
Ejemplo
Vea el ejemplo de CListCtrl::SetBkColor
.
CListCtrl::GetBkImage
Recupera la imagen de fondo actual de un control de vista de lista.
BOOL GetBkImage(LVBKIMAGE* plvbkImage) const;
Parámetros
plvbkImage
Puntero que apunta a una estructura LVBKIMAGE
que contiene la imagen de fondo actual de la vista de lista.
Valor devuelto
Devuelve un valor distinto de cero si se ejecuta correctamente o cero en caso contrario.
Comentarios
Este método, implementa el comportamiento de la macro de Win32, ListView_GetBkImage
, tal y como se describe en Windows SDK.
Ejemplo
LVBKIMAGE bki;
// If no background image is set for the list view control use
// the Microsoft homepage image as the background image.
if (m_myListCtrl.GetBkImage(&bki) && (bki.ulFlags == LVBKIF_SOURCE_NONE))
{
m_myListCtrl.SetBkImage(
_T("https://www.microsoft.com/library/images/gifs/homepage/microsoft.gif"),
TRUE);
}
CListCtrl::GetCallbackMask
Recupera la máscara de devolución de llamada de un control de vista de lista.
UINT GetCallbackMask() const;
Valor devuelto
Máscara de devolución de llamada del control de vista de lista.
Comentarios
Un "elemento de devolución de llamada" es un elemento de vista de lista para el que la aplicación, en lugar del control, almacena el texto, el icono o ambos. Aunque un control de vista de lista puede almacenar estos atributos, es posible que desee usar elementos de devolución de llamada si la aplicación ya mantiene parte de esta información. La máscara de devolución de llamada especifica qué bits de estado de elemento mantiene la aplicación y se aplica a todo el control en lugar de a un elemento específico. La máscara de devolución de llamada es cero de forma predeterminada, lo que significa que el control hace un seguimiento de todos los estados del elemento. Si una aplicación usa elementos de devolución de llamada o especifica una máscara de devolución de llamada distinto de cero, debe poder proporcionar atributos de elemento de vista de lista a petición.
Ejemplo
Vea el ejemplo de CListCtrl::SetCallbackMask
.
CListCtrl::GetCheck
Recupera el estado de presentación actual de la imagen de estado asociada a un elemento.
BOOL GetCheck(int nItem) const;
Parámetros
nItem
Índice de base cero de un elemento de control de lista.
Valor devuelto
Distinto de cero si el elemento está seleccionado; de lo contrario, 0.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetCheckState
, tal y como se describe en Windows SDK.
Ejemplo
Vea el ejemplo de CListCtrl::SetCheck
.
CListCtrl::GetColumn
Recupera los atributos de la columna de un control de vista de lista.
BOOL GetColumn(
int nCol,
LVCOLUMN* pColumn) const;
Parámetros
nCol
Índice de la columna cuyos atributos se van a recuperar.
pColumn
Dirección de una estructura LVCOLUMN
que especifica la información que se va a recuperar y recibe información sobre la columna. El miembro mask
especifica qué atributos de la columna se van a recuperar. Si el miembro mask
especifica el valor LVCF_TEXT, el miembro pszText
debe contener la dirección del búfer que recibe el texto del elemento y el miembro cchTextMax
debe especificar el tamaño del búfer.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
La estructura LVCOLUMN
contiene información sobre una columna en la vista de informe.
Ejemplo
LVCOLUMN col;
col.mask = LVCF_WIDTH;
// Double the column width of the first column.
if (m_myListCtrl.GetColumn(0, &col))
{
col.cx *= 2;
m_myListCtrl.SetColumn(0, &col);
}
CListCtrl::GetColumnOrderArray
Recupera el orden de columna (de izquierda a derecha) de un control de vista de lista.
BOOL GetColumnOrderArray(
LPINT piArray,
int iCount = -1);
Parámetros
piArray
Puntero que apunta a un búfer que contendrá los valores de índice de las columnas del control de vista de lista. El búfer debe ser lo suficientemente grande como para contener la cantidad total de columnas del control de vista de lista.
iCount
Número de columnas del control de vista de lista. Si este parámetro es -1, el marco recupera automáticamente el número de columnas.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetColumnOrderArray
, tal y como se describe en Windows SDK.
Ejemplo
// Reverse the order of the columns in the list view control
// (i.e. make the first column the last, the last column
// the first, and so on...).
CHeaderCtrl* pHeaderCtrl = m_myListCtrl.GetHeaderCtrl();
if (pHeaderCtrl != NULL)
{
int nColumnCount = pHeaderCtrl->GetItemCount();
LPINT pnOrder = (LPINT) malloc(nColumnCount*sizeof(int));
ASSERT(pnOrder != NULL);
m_myListCtrl.GetColumnOrderArray(pnOrder, nColumnCount);
int i, j, nTemp;
for (i = 0, j = nColumnCount-1; i < j; i++, j--)
{
nTemp = pnOrder[i];
pnOrder[i] = pnOrder[j];
pnOrder[j] = nTemp;
}
m_myListCtrl.SetColumnOrderArray(nColumnCount, pnOrder);
free(pnOrder);
}
CListCtrl::GetColumnWidth
Recupera el ancho de una columna en la vista de informe o vista de lista.
int GetColumnWidth(int nCol) const;
Parámetros
nCol
Especifica el índice de la columna cuyo ancho se va a recuperar.
Valor devuelto
Ancho en píxeles de la columna especificada por nCol
.
Ejemplo
// Increase the column width of the second column by 20.
int nWidth = m_myListCtrl.GetColumnWidth(1);
m_myListCtrl.SetColumnWidth(1, 20 + nWidth);
CListCtrl::GetCountPerPage
Calcula la cantidad de elementos que pueden caber verticalmente en el área visible de un control de vista de lista cuando se encuentran en la vista de lista o en la vista de informe.
int GetCountPerPage() const;
Valor devuelto
Cantidad de elementos que pueden caber verticalmente en el área visible de un control de vista de lista cuando se encuentran en la vista de lista o en la vista de informe.
Ejemplo
Vea el ejemplo de CListCtrl::GetTopIndex
.
CListCtrl::GetEditControl
Recupera el manipulador del control de edición usado para editar el texto de un elemento de vista de lista.
CEdit* GetEditControl() const;
Valor devuelto
Si se ejecuta correctamente, un puntero apunta al objeto CEdit
que se usa para editar el texto del elemento, de lo contrario NULL
.
Ejemplo
// The string replacing the text in the edit control.
LPCTSTR lpszmyString = _T("custom label!");
// If possible, replace the text in the label edit control.
CEdit* pEdit = m_myListCtrl.GetEditControl();
if (pEdit != NULL)
{
pEdit->SetWindowText(lpszmyString);
}
CListCtrl::GetEmptyText
Recupera la cadena que se va a mostrar si el control de vista de lista actual está vacío.
CString GetEmptyText() const;
Valor devuelto
CString
que contiene el texto que se va a mostrar si el control está vacío.
Comentarios
Al usar este método, se envía el mensaje LVM_GETEMPTYTEXT
, que se describe en Windows SDK.
CListCtrl::GetExtendedStyle
Recupera los estilos extendidos actuales de un control de vista de lista.
DWORD GetExtendedStyle();
Valor devuelto
Combinación de los estilos extendidos que actualmente usa el control de vista de lista. Para obtener una lista descriptiva de estos estilos extendidos, consulte el artículo Estilos extendidos de la vista de lista en Windows SDK.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetExtendedListViewStyle
, tal y como se describe en Windows SDK.
Ejemplo
Vea el ejemplo de CListCtrl::SetExtendedStyle
.
CListCtrl::GetFirstSelectedItemPosition
Obtiene la posición del primer elemento seleccionado en el control de vista de lista.
POSITION GetFirstSelectedItemPosition() const;
Valor devuelto
Valor POSITION
que se puede usar para la recuperación de puntero de objeto o iteración; NULL
si ningún elemento está seleccionado.
Ejemplo
En el ejemplo de código siguiente se muestra el uso de esta función.
POSITION pos = m_myListCtrl.GetFirstSelectedItemPosition();
if (pos == NULL)
{
TRACE(_T("No items were selected!\n"));
}
else
{
while (pos)
{
int nItem = m_myListCtrl.GetNextSelectedItem(pos);
TRACE(_T("Item %d was selected!\n"), nItem);
// you could do your own processing on nItem here
}
}
CListCtrl::GetFocusedGroup
Recupera el grupo que tiene el foco del teclado en el control de vista de lista actual.
int GetFocusedGroup() const;
Valor devuelto
Índice del grupo cuyo estado es LVGS_FOCUSED
, si hay un grupo de este tipo, de lo contrario, -1.
Comentarios
Al usar este método, se envía el mensaje LVM_GETFOCUSEDGROUP
, que se describe en Windows SDK. Para más información, consulte el valor LVGS_FOCUSED
del miembro state
de la estructura LVGROUP
.
CListCtrl::GetGroupCount
Recupera el número de grupos del control de vista de lista actual.
int GetGroupCount()const;
Valor devuelto
Número de grupos del control de vista de lista.
Comentarios
Al usar este método, se envía el mensaje LVM_GETGROUPCOUNT
, que se describe en Windows SDK -->.
CListCtrl::GetGroupInfo
Obtiene la información de un grupo especificado del control de vista de lista.
int GetGroupInfo(
int iGroupId,
PLVGROUP pgrp) const;
Parámetros
iGroupId
Identificador del grupo cuya información se va a recuperar.
pgrp
Puntero que apunta a la información contenedora de LVGROUP
del grupo especificado.
Valor devuelto
Devuelve el identificador del grupo si se ejecuta correctamente, de lo contrario, -1.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_GETGROUPINFO
, tal como se describe en Windows SDK.
CListCtrl::GetGroupInfoByIndex
Recupera la información sobre un grupo especificado del control de vista de lista actual.
BOOL GetGroupInfoByIndex(
int iIndex,
PLVGROUP pGroup) const;
Parámetros
iIndex
[Entrada] Índice de base cero de un grupo.
pGroup
[salida] Puntero que apunta a una estructura LVGROUP que recibe información sobre el grupo especificado por el parámetro iIndex. El autor de la llamada es responsable de inicializar los miembros de la estructura LVGROUP. Establezca el miembro cbSize
en el tamaño de la estructura y las marcas del miembro mask
para especificar la información que se va a recuperar.
Valor devuelto
TRUE
si este método es correcto; en caso contrario, FALSE
.
Comentarios
Al usar este método, se envía el mensaje LVM_GETGROUPINFOBYINDEX
, que se describe en Windows SDK -->.
Ejemplo
En el primer ejemplo de código se define una variable, m_listCtrl
, que se usa para acceder al control de vista de lista actual. Esta variable se utiliza en el siguiente ejemplo.
public:
// Variable used to access the list control.
CListCtrl m_listCtrl;
En el siguiente código de ejemplo se muestra el método GetGroupInfoByIndex
. En una sección anterior de este ejemplo de código, creamos un control de vista de lista que muestra dos columnas tituladas "ClientID" y "Grade" en una vista de informe. En el ejemplo de código siguiente se recupera información sobre el grupo cuyo índice es 0, si existe dicho grupo.
// GetGroupInfoByIndex
const int GROUP_HEADER_BUFFER_SIZE = 40;
// Initialize the structure
LVGROUP gInfo = {0};
gInfo.cbSize = sizeof(LVGROUP);
wchar_t wstrHeadGet[GROUP_HEADER_BUFFER_SIZE] = {0};
gInfo.cchHeader = GROUP_HEADER_BUFFER_SIZE;
gInfo.pszHeader = wstrHeadGet;
gInfo.mask = (LVGF_ALIGN | LVGF_STATE | LVGF_HEADER | LVGF_GROUPID);
gInfo.state = LVGS_NORMAL;
gInfo.uAlign = LVGA_HEADER_LEFT;
BOOL bRet = m_listCtrl.GetGroupInfoByIndex( 0, &gInfo );
if (bRet == TRUE) {
CString strHeader = CString( gInfo.pszHeader );
CString str;
str.Format(_T("Header: '%s'"), strHeader);
AfxMessageBox(str, MB_ICONINFORMATION);
}
else
{
AfxMessageBox(_T("No group information was retrieved."));
}
CListCtrl::GetGroupMetrics
Recupera las métricas de un grupo.
void GetGroupMetrics(PLVGROUPMETRICS pGroupMetrics) const;
Parámetros
pGroupMetrics
Puntero que apunta a un objeto LVGROUPMETRICS
que contiene la información de métricas de grupo.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_GETGROUPMETRICS
, tal como se describe en Windows SDK.
CListCtrl::GetGroupRect
Recupera el rectángulo delimitador de un grupo especificado del control de vista de lista actual.
BOOL GetGroupRect(
int iGroupId,
LPRECT lpRect,
int iCoords = LVGGR_GROUP) const;
Parámetros
iGroupId
[entrada] Especifica un grupo.
lpRect
[entrada, salida] Puntero que apunta a una estructura RECT
. Si este método se ejecuta correctamente, la estructura recibe las coordenadas del rectángulo del grupo especificado por iGroupId
.
iCoords
[entrada] Especifica las coordenadas del rectángulo que se van a recuperar. Utilice uno de estos valores:
LVGGR_GROUP
: (valor predeterminado) Coordenadas de todo el grupo expandido.LVGGR_HEADER
: Coordenadas de solo el encabezado (grupo contraído).LVGGR_SUBSETLINK
: Coordenadas de solo el vínculo de subconjunto (subconjunto de marcado).
Valor devuelto
TRUE
si este método es correcto; en caso contrario, FALSE
.
Comentarios
El autor de la llamada es responsable de asignar la estructura RECT
a la que apunta el parámetro pRect
.
Al usar este método, se envía el mensaje LVM_GETGROUPRECT
, que se describe en Windows SDK.
Ejemplo
En el primer ejemplo de código se define una variable, m_listCtrl
, que se usa para acceder al control de vista de lista actual. Esta variable se utiliza en el siguiente ejemplo.
public:
// Variable used to access the list control.
CListCtrl m_listCtrl;
En el siguiente código de ejemplo se muestra el método GetGroupRect
. En una sección anterior de este ejemplo de código, creamos un control de vista de lista que muestra dos columnas tituladas "ClientID" y "Grade" en una vista de informe. En el ejemplo de código siguiente se dibuja un rectángulo 3D alrededor del grupo cuyo índice es 0, si existe dicho grupo.
// GetGroupRect
// Get the graphics rectangle that surrounds group 0.
CRect rect;
BOOL bRet = m_listCtrl.GetGroupRect( 0, &rect, LVGGR_GROUP);
// Draw a blue rectangle around group 0.
if (bRet == TRUE) {
m_listCtrl.GetDC()->Draw3dRect( &rect, RGB(0, 0, 255), RGB(0, 0, 255));
}
else {
AfxMessageBox(_T("No group information was retrieved."), MB_ICONINFORMATION);
}
CListCtrl::GetGroupState
Recupera el estado de un grupo especificado del control de vista de lista actual.
UINT GetGroupState(
int iGroupId,
DWORD dwMask) const;
Parámetros
iGroupId
[Entrada] Índice de base cero de un grupo.
dwMask
[entrada] Máscara que especifica el valor de estado que se va a recuperar para grupo especificado. Para obtener más información, consulte el miembro mask
de la estructura LVGROUP
.
Valor devuelto
Estado solicitado del grupo especificado o 0 si no se encuentra el grupo.
Comentarios
El valor devuelto es el resultado de una operación AND bit a bit en el parámetro dwMask
y el valor del miembro state
de una estructura LVGROUP
que representa el control de vista de lista actual.
Al usar este método, se envía el mensaje LVM_GETGROUPSTATE
, que se describe en Windows SDK. Para más información, consulte la macro ListView_GetGroupState
.
CListCtrl::GetHeaderCtrl
Recupera el control de encabezado de un control de vista de lista.
CHeaderCtrl* GetHeaderCtrl();
Valor devuelto
Puntero que apunta al control de encabezado, utilizado por el control de vista de lista.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetHeader
, tal y como se describe en Windows SDK.
Ejemplo
Vea el ejemplo de CListCtrl::GetColumnOrderArray
.
CListCtrl::GetHotCursor
Recupera el cursor utilizado cuando el seguimiento activo está habilitado para un control de vista de lista.
HCURSOR GetHotCursor();
Valor devuelto
Manipulador del recurso de cursor activo actual que usa el control de vista de lista.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetHotCursor
, tal y como se describe en Windows SDK. El cursor activo, solo visible cuando se habilita la selección mediante movimiento del mouse, aparece cuando el cursor pasa sobre cualquier elemento de vista de lista. La selección mediante movimiento del mouse se habilita al establecer el estilo extendido LVS_EX_TRACKSELECT.
Ejemplo
// Set the hot cursor to be the system app starting cursor.
HCURSOR hCursor = ::LoadCursor(NULL, IDC_APPSTARTING);
m_myListCtrl.SetHotCursor(hCursor);
ASSERT(m_myListCtrl.GetHotCursor() == hCursor);
CListCtrl::GetHotItem
Recupera el elemento de vista de lista actualmente bajo el cursor.
int GetHotItem();
Valor devuelto
Índice del elemento activo actual del control de vista de lista.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetHotItem
, tal y como se describe en Windows SDK. El elemento activo se define como el elemento seleccionado actualmente cuando se habilita el seguimiento activo (y la selección mediante movimiento del mouse).
Si el seguimiento activo está habilitado, cuando un usuario se detiene sobre un elemento de la vista de lista, la etiqueta del elemento se resalta automáticamente sin usar un botón del mouse.
Ejemplo
// Set the hot item to the first item only if no other item is
// highlighted.
if (m_myListCtrl.GetHotItem() == -1)
m_myListCtrl.SetHotItem(0);
CListCtrl::GetHoverTime
Recupera el tiempo actual del movimiento del mouse de un control de vista de lista.
DWORD GetHoverTime() const;
Valor devuelto
Devuelve el retraso, en milisegundos, que el cursor del mouse debe mantener el puntero sobre un elemento antes de seleccionarlo. Si el valor devuelto es -1, el tiempo del movimiento del mouse es el predeterminado.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetHoverTime
, tal y como se describe en Windows SDK.
Ejemplo
// If the hover time is the default set to 1 sec.
DWORD dwTime = m_myListCtrl.GetHoverTime();
if (dwTime == -1)
m_myListCtrl.SetHoverTime(1000);
CListCtrl::GetImageList
Recupera el manipulador de una lista de imágenes utilizada para dibujar elementos de vista de lista.
CImageList* GetImageList(int nImageList) const;
Parámetros
nImageList
Valor que especifica qué lista de imágenes se va a recuperar. Puede ser uno de estos valores:
LVSIL_NORMAL
Lista de imágenes con iconos grandes.LVSIL_SMALL
Lista de imágenes con iconos pequeños.LVSIL_STATE
Lista de imágenes con imágenes de estado.
Valor devuelto
Puntero que apunta a la lista de imágenes usada para los elementos de vista de lista de dibujo.
Ejemplo
ASSERT(m_myListCtrl.GetImageList(LVSIL_NORMAL) == NULL);
m_myListCtrl.SetImageList(&m_lcImageList, LVSIL_NORMAL);
ASSERT(m_myListCtrl.GetImageList(LVSIL_NORMAL) == &m_lcImageList);
CListCtrl::GetInsertMark
Recupera la posición actual de la marca de inserción.
BOOL GetInsertMark(LPLVINSERTMARK plvim) const;
Parámetros
plvim
Puntero que apunta a una estructura LVINSERTMARK
que contiene la información de la marca de inserción.
Valor devuelto
Devuelve TRUE
si se realizó correctamente; de lo contrario, FALSE
. FALSE
se devuelve si el tamaño del miembro cbSize
de la estructura LVINSERTMARK
no es igual al tamaño real de la estructura.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_GETINSERTMARK
, tal como se describe en Windows SDK.
CListCtrl::GetInsertMarkColor
Recupera el color actual de la marca de inserción.
COLORREF GetInsertMarkColor() const;
Valor devuelto
Devuelve una estructura COLORREF
que contiene el color del punto de inserción.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_GETINSERTMARKCOLOR
, tal como se describe en Windows SDK.
CListCtrl::GetInsertMarkRect
Recupera el rectángulo que enlaza el punto de inserción.
int GetInsertMarkRect(LPRECT pRect) const;
Parámetros
pRect
Puntero que apunta a una estructura RECT
que contiene las coordenadas de un rectángulo que enlaza el punto de inserción.
Valor devuelto
Devuelve uno de los valores siguientes:
- 0 No se encontró ningún punto de inserción.
- 1 Se encontró el punto de inserción.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_GETINSERTMARKRECT
, tal como se describe en Windows SDK.
CListCtrl::GetItem
Recupera algunos o todos los atributos de un elemento de vista de lista.
BOOL GetItem(LVITEM* pItem) const;
Parámetros
pItem
Puntero que apunta a una estructura LVITEM
que recibe los atributos del elemento.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
La estructura LVITEM
especifica o recibe los atributos de un elemento de vista de lista.
CListCtrl::GetItemCount
Recupera el número de elementos de un control de vista de lista.
int GetItemCount() const;
Valor devuelto
Número de elementos del control de vista de lista.
Ejemplo
Vea el ejemplo de CListCtrl::DeleteItem
.
CListCtrl::GetItemData
Recupera el valor específico de la aplicación de 32 bits (64 bits si compila para x64) asociado al elemento especificado por nItem
.
DWORD_PTR GetItemData(int nItem) const;
Parámetros
nItem
Índice del elemento de lista cuyos datos se van a recuperar.
Valor devuelto
Valor específico de la aplicación de 32 bits (64 bits si compila para x64) asociado al elemento especificado.
Comentarios
Este valor es el miembro lParam
de la estructura LVITEM
, como se describe en Windows SDK.
Ejemplo
// If any item's data is equal to zero then reset it to -1.
for (int i=0; i < m_myListCtrl.GetItemCount(); i++)
{
if (m_myListCtrl.GetItemData(i) == 0)
{
m_myListCtrl.SetItemData(i, (DWORD) -1);
}
}
CListCtrl::GetItemIndexRect
Recupera el rectángulo delimitador para todo un subelemento o parte de este en el control de vista de lista actual.
BOOL GetItemIndexRect(
PLVITEMINDEX pItemIndex,
int iColumn,
int rectType,
LPRECT pRect) const;
Parámetros
pItemIndex
[entrada] Puntero que apunta a una estructura LVITEMINDEX
para el elemento primario del subelemento. El autor de la llamada es responsable de asignar y establecer los miembros de la estructura LVITEMINDEX
. Este parámetro no puede ser NULL
.
iColumn
[entrada] Índice de base cero de una columna en el control.
rectType
[entrada] Parte del subelemento de vista de lista para el que se recupera el rectángulo delimitador. Especifique uno de los siguientes valores:
LVIR_BOUNDS
: devuelve el rectángulo delimitador de todo el subelemento, incluido el icono y la etiqueta.LVIR_ICON
: devuelve el rectángulo delimitador del icono o icono pequeño del subelemento.LVIR_LABEL
: devuelve el rectángulo delimitador del texto del subelemento.
pRect
[salida] Puntero que apunta a una estructura RECT
que recibe información sobre el rectángulo delimitador del subelemento. El autor de la llamada es responsable de asignar la estructura RECT
. Este parámetro no puede ser NULL
.
Valor devuelto
TRUE
si este método es correcto; en caso contrario, FALSE
.
Comentarios
Al usar este método, se envía el mensaje LVM_GETITEMINDEXRECT
, que se describe en Windows SDK. Para más información, consulte Macro ListView_GetItemIndexRect
.
Ejemplo
En el primer ejemplo de código se define una variable, m_listCtrl
, que se usa para acceder al control de vista de lista actual. Esta variable se utiliza en el siguiente ejemplo.
public:
// Variable used to access the list control.
CListCtrl m_listCtrl;
En el siguiente código de ejemplo se muestra el método GetGroupRect
. Antes de escribir este ejemplo de código, se ha creado un control de vista de lista que muestra dos columnas tituladas "ClientID" y "Grade" en una vista de informe. En el ejemplo de código siguiente se dibuja un rectángulo 3D alrededor del segundo subelemento en ambas columnas.
// GetItemIndexRect
// Get the rectangle that bounds the second item in the first group.
LVITEMINDEX lvItemIndex;
lvItemIndex.iGroup = 0;
lvItemIndex.iItem = 1;
CRect rect;
BOOL bRet = m_listCtrl.GetItemIndexRect(
&lvItemIndex, 0, LVIR_BOUNDS, &rect);
// Draw a red rectangle around the item.
m_listCtrl.GetDC()->Draw3dRect( &rect, RGB(255, 0, 0), RGB(255, 0, 0) );
CListCtrl::GetItemPosition
Recupera la posición de un elemento de vista de lista.
BOOL GetItemPosition(
int nItem,
LPPOINT lpPoint) const;
Parámetros
nItem
Índice del elemento cuya posición se va a recuperar.
lpPoint
Dirección de una estructura POINT
que recibe la posición de la esquina superior izquierda del elemento, en coordenadas de vista.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Ejemplo
POINT pt;
// Move all items in the list control 100 pixels to the right.
UINT i, nCount = m_myListCtrl.GetItemCount();
for (i=0; i < nCount; i++)
{
m_myListCtrl.GetItemPosition(i, &pt);
pt.x += 100;
m_myListCtrl.SetItemPosition(i, pt);
}
CListCtrl::GetItemRect
Recupera el rectángulo delimitador de todo un elemento o parte de este de la vista actual.
BOOL GetItemRect(
int nItem,
LPRECT lpRect,
UINT nCode) const;
Parámetros
nItem
Índice del elemento cuya posición se va a recuperar.
lpRect
Dirección de una estructura RECT
que recibe el rectángulo delimitador.
nCode
Parte del elemento de vista de lista para el que se va a recuperar el rectángulo delimitador. Puede ser uno de estos valores:
LVIR_BOUNDS
: devuelve el rectángulo delimitador de todo el elemento, incluido el icono y la etiqueta.LVIR_ICON
: devuelve el rectángulo delimitador del icono o icono pequeño.LVIR_LABEL
: devuelve el rectángulo delimitador del texto del elemento.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Ejemplo
// OnClick is the handler for the NM_CLICK notification
void CListCtrlDlg::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
UNREFERENCED_PARAMETER(pResult);
LPNMITEMACTIVATE pia = (LPNMITEMACTIVATE)pNMHDR;
// Get the current mouse location and convert it to client
// coordinates.
CPoint pos( ::GetMessagePos() );
ScreenToClient(&pos);
// Get indexes of the first and last visible items in
// the listview control.
int index = m_myListCtrl.GetTopIndex();
int last_visible_index = index + m_myListCtrl.GetCountPerPage();
if (last_visible_index > m_myListCtrl.GetItemCount())
last_visible_index = m_myListCtrl.GetItemCount();
// Loop until number visible items has been reached.
while (index <= last_visible_index)
{
// Get the bounding rectangle of an item. If the mouse
// location is within the bounding rectangle of the item,
// you know you have found the item that was being clicked.
CRect r;
m_myListCtrl.GetItemRect(index, &r, LVIR_BOUNDS);
if (r.PtInRect(pia->ptAction))
{
UINT flag = LVIS_SELECTED | LVIS_FOCUSED;
m_myListCtrl.SetItemState(index, flag, flag);
break;
}
// Get the next item in listview control.
index++;
}
}
CListCtrl::GetItemSpacing
Calcula el espaciado entre los elementos del control de vista de lista actual.
BOOL GetItemSpacing(
BOOL fSmall,
int* pnHorzSpacing,
int* pnVertSpacing) const;
Parámetros
fSmall
[entrada] Vista para la que se va a recuperar el espaciado de elementos. Especifique TRUE
para la vista de icono pequeño o FALSE
para la vista de icono.
pnHorzSpacing
[salida] Contiene el espaciado horizontal entre elementos.
pnVertSpacing
[salida] Contiene el espaciado vertical entre elementos.
Valor devuelto
TRUE
si este método es correcto; en caso contrario, FALSE
.
Comentarios
Al usar este método, se envía el mensaje LVM_GETITEMSPACING
, que se describe en Windows SDK.
CListCtrl::GetItemState
Recupera el estado de un elemento de vista de lista.
UINT GetItemState(
int nItem,
UINT nMask) const;
Parámetros
nItem
Índice del elemento cuyo estado se va a recuperar.
nMask
Máscara que especifica cuál de las marcas de estado del elemento se van a devolver.
Valor devuelto
Marcas de estado del elemento de vista de lista especificado.
Comentarios
El miembro state
de la estructura LVITEM
especifica el estado de un elemento, como se describe en Windows SDK. Al especificar o cambiar el estado de un elemento, el miembro stateMask
indica qué bits de estado quiere cambiar.
Ejemplo
Vea el ejemplo de CListCtrl::GetTopIndex
.
CListCtrl::GetItemText
Recupera el texto de un elemento o subelemento de vista de lista.
int GetItemText(
int nItem,
int nSubItem,
LPTSTR lpszText,
int nLen) const;
CString GetItemText(
int nItem,
int nSubItem) const;
Parámetros
nItem
Índice del elemento cuyo texto se va a recuperar.
nSubItem
Especifica el subelemento cuyo texto se va a recuperar.
lpszText
Puntero que apunta a una cadena que va a recibir el texto del elemento.
nLen
Longitud del búfer al que apunta lpszText
.
Valor devuelto
La versión que devuelve int
devuelve la longitud de la cadena recuperada.
La versión que devuelve una clase CString
devuelve el texto del elemento.
Comentarios
Si nSubItem
es cero, esta función recupera la etiqueta del elemento; si nSubItem
no es cero, recupera el texto del subelemento. Para más información sobre el argumento del subelemento, consulte la explicación de la estructura LVITEM
en Windows SDK.
CListCtrl::GetNextItem
Busca un elemento de vista de lista que tenga las propiedades especificadas y que contenga la relación especificada con un elemento determinado.
int GetNextItem(
int nItem,
int nFlags) const;
Parámetros
nItem
Índice del elemento con el que se va a comenzar la búsqueda o -1 para buscar el primer elemento que coincida con las marcas especificadas. El propio elemento especificado se excluye de la búsqueda.
nFlags
Relación geométrica del elemento solicitado con el elemento especificado y el estado del elemento solicitado. La relación geométrica puede ser uno de estos valores:
LVNI_ABOVE
Busca un elemento situado encima del elemento especificado.LVNI_ALL
Busca un elemento posterior por índice (el valor predeterminado).LVNI_BELOW
Busca un elemento situado debajo del elemento especificado.LVNI_TOLEFT
Busca un elemento a la izquierda del elemento especificado.LVNI_TORIGHT
Busca un elemento a la derecha del elemento especificado.
El estado puede ser cero o puede ser uno o varios de estos valores:
LVNI_DROPHILITED
El elemento tiene la marca de estadoLVIS_DROPHILITED
establecida.LVNI_FOCUSED
El elemento tiene la marca de estadoLVIS_FOCUSED
establecida.LVNI_SELECTED
El elemento tiene la marca de estadoLVIS_SELECTED
establecida.
Si un elemento no tiene establecidas todas las marcas de estado especificadas, la búsqueda continúa con el siguiente elemento.
Valor devuelto
Índice del siguiente elemento si se ejecuta correctamente o -1 de lo contrario.
CListCtrl::GetNextItemIndex
Recupera el índice del elemento del control de vista de lista actual que tiene un conjunto especificado de propiedades.
BOOL GetNextItemIndex(
PLVITEMINDEX pItemIndex,
int nFlags) const;
Parámetros
pItemIndex
[entrada, salida] Puntero que apunta a la estructura LVITEMINDEX
que describe el elemento donde comienza la búsqueda o -1 para buscar el primer elemento que coincida con las marcas en el parámetro nFlags. Si este método se ejecuta correctamente, la estructura LVITEMINDEX
describe el elemento encontrado por la búsqueda.
nFlags
[entrada] Combinación bit a bit (OR) de marcas que especifican cómo hacer la búsqueda. La búsqueda puede depender del índice, el estado o la apariencia del elemento de destino, o la posición física del elemento de destino en relación con el elemento especificado por el parámetro pItemIndex
. Para más información, consulte el parámetro flags
del mensaje LVM_GETNEXTITEMINDEX
.
Valor devuelto
TRUE
si este método es correcto; en caso contrario, FALSE
.
Comentarios
El autor de la llamada es responsable de asignar y establecer los miembros de la estructura LVITEMINDEX
a los que apunta el parámetro pItemIndex
.
Al usar este método, se envía el mensaje LVM_GETNEXTITEMINDEX
, que se describe en Windows SDK.
CListCtrl::GetNextSelectedItem
Obtiene el índice del elemento de lista identificado por pos
y, luego, establece pos
en el valor POSITION.
int GetNextSelectedItem(POSITION& pos) const;
Parámetros
pos
Referencia a un valor POSITION devuelto por una llamada anterior a GetNextSelectedItem
o GetFirstSelectedItemPosition
. Esta llamada actualiza el valor a la siguiente posición.
Valor devuelto
Índice del elemento de lista identificado por pos
.
Comentarios
Puede usar GetNextSelectedItem
en un bucle de iteración hacia delante si establece la posición inicial con una llamada a GetFirstSelectedItemPosition
.
Debe asegurarse de que el valor POSITION
es válido. Si no es válida, se impone la versión de depuración de la biblioteca MFC (Microsoft Foundation Class).
Ejemplo
En el ejemplo de código siguiente se muestra el uso de esta función.
POSITION pos = m_myListCtrl.GetFirstSelectedItemPosition();
if (pos == NULL)
{
TRACE(_T("No items were selected!\n"));
}
else
{
while (pos)
{
int nItem = m_myListCtrl.GetNextSelectedItem(pos);
TRACE(_T("Item %d was selected!\n"), nItem);
// you could do your own processing on nItem here
}
}
CListCtrl::GetNumberOfWorkAreas
Recupera el número actual de áreas de trabajo de un control de vista de lista.
UINT GetNumberOfWorkAreas() const;
Valor devuelto
No se usa en este momento.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetNumberOfWorkAreas
, tal y como se describe en Windows SDK.
Ejemplo
UINT i, uCount = m_myListCtrl.GetNumberOfWorkAreas();
LPRECT lpRects = (LPRECT) malloc(uCount*sizeof(RECT));
if (lpRects != NULL)
{
// Dump all of the work area dimensions.
m_myListCtrl.GetWorkAreas(uCount, lpRects);
for (i=0; i < uCount; i++)
{
TRACE(_T("Work area %d; left = %d, top = %d, right = %d, ")
_T("bottom = %d\r\n"),
i, lpRects[i].left, lpRects[i].top, lpRects[i].right,
lpRects[i].bottom);
}
free(lpRects);
}
else
{
TRACE(_T("Couldn't allocate enough memory!"));
}
CListCtrl::GetOutlineColor
Recupera el color del borde de un control de vista de lista.
COLORREF GetOutlineColor() const;
Valor devuelto
Devuelve una estructura COLORREF
que contiene el color del contorno.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_GETOUTLINECOLOR
, tal como se describe en Windows SDK.
CListCtrl::GetOrigin
Recupera el origen de la vista actual de un control de vista de lista.
BOOL GetOrigin(LPPOINT lpPoint) const;
Parámetros
lpPoint
Dirección de una estructura POINT
que recibe el origen de la vista.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero. Sin embargo, si el control está en la vista de informe, el valor devuelto siempre es cero.
CListCtrl::GetSelectedColumn
Recupera el índice de la columna seleccionada actualmente en el control de lista.
UINT GetSelectedColumn() const;
Valor devuelto
Índice de la columna seleccionada.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_GETSELECTEDCOLUMN
, tal como se describe en Windows SDK.
CListCtrl::GetSelectedCount
Recupera el número de elementos seleccionados en el control de vista de lista.
UINT GetSelectedCount() const;
Valor devuelto
Número de elementos seleccionados en el control de vista de lista.
Ejemplo
UINT i, uSelectedCount = m_myListCtrl.GetSelectedCount();
int nItem = -1;
// Update all of the selected items.
if (uSelectedCount > 0)
{
for (i=0; i < uSelectedCount; i++)
{
nItem = m_myListCtrl.GetNextItem(nItem, LVNI_SELECTED);
ASSERT(nItem != -1);
m_myListCtrl.Update(nItem);
}
}
CListCtrl::GetSelectionMark
Recupera la marca de selección de un control de vista de lista.
int GetSelectionMark();
Valor devuelto
Marca de selección de base cero o -1 si no hay ninguna marca de selección.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetSelectionMark
, tal y como se describe en Windows SDK.
Ejemplo
// Set the selection mark to the first item only if no other item is
// selected.
if (m_myListCtrl.GetSelectionMark() == -1)
m_myListCtrl.SetSelectionMark(0);
CListCtrl::GetStringWidth
Determina el ancho de columna mínimo necesario para mostrar toda una cadena determinada.
int GetStringWidth(LPCTSTR lpsz) const;
Parámetros
lpsz
Dirección de una cadena terminada en un valor null cuyo ancho se va a determinar.
Valor devuelto
Ancho, en píxeles, de la cadena a la que lpsz
apunta.
Comentarios
El ancho devuelto toma en cuenta los márgenes actuales de fuente y columna del control, pero no el ancho de un icono pequeño.
Ejemplo
CString strColumn;
int nWidth;
// Insert six columns in the list view control. Make the width of
// the column be the width of the column header plus 50%.
for (int i = 0; i < 6; i++)
{
strColumn.Format(_T("column %d"), i);
nWidth = 3*m_myListCtrl.GetStringWidth(strColumn)/2;
m_myListCtrl.InsertColumn(i, strColumn, LVCFMT_LEFT, nWidth);
}
CListCtrl::GetSubItemRect
Recupera el rectángulo delimitador de un elemento de un control de vista de lista.
BOOL GetSubItemRect(
int iItem,
int iSubItem,
int nArea,
CRect& ref);
Parámetros
iItem
Índice del elemento primario del subelemento.
iSubItem
Índice basado en uno del subelemento.
nArea
Determina la parte del rectángulo delimitador (del subelemento de vista de lista) que se va a recuperar. La parte (icono, etiqueta o ambos) del rectángulo delimitador se especifica al aplicar el operador OR
bit a bit a uno o varios de los valores siguientes:
LVIR_BOUNDS
: devuelve el rectángulo delimitador de todo el elemento, incluido el icono y la etiqueta.LVIR_ICON
: devuelve el rectángulo delimitador del icono o icono pequeño.LVIR_LABEL
: devuelve el rectángulo delimitador de todo el elemento, incluido el icono y la etiqueta. Esto es idéntico aLVIR_BOUNDS
.
ref
Referencia a un objeto CRect
que contiene las coordenadas del rectángulo delimitador del subelemento.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetSubItemRect
, tal y como se describe en Windows SDK.
CListCtrl::GetTextBkColor
Recupera el color de fondo del texto de un control de vista de lista.
COLORREF GetTextBkColor() const;
Valor devuelto
Valor de 32 bits usado para especificar un color RGB.
Ejemplo
Vea el ejemplo de CListCtrl::SetTextBkColor
.
CListCtrl::GetTextColor
Recupera el color de texto de un control de vista de lista.
COLORREF GetTextColor() const;
Valor devuelto
Valor de 32 bits usado para especificar un color RGB.
Ejemplo
Vea el ejemplo de CListCtrl::SetTextColor
.
CListCtrl::GetTileInfo
Recupera información sobre un mosaico de un control de vista de lista.
BOOL GetTileInfo(PLVTILEINFO plvti) const;
Parámetros
plvti
Un puntero que apunta a una estructura LVTILEINFO
que recibe la información del mosaico.
Valor devuelto
No se usa el valor devuelto.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_GETTILEINFO
, tal como se describe en Windows SDK.
CListCtrl::GetTileViewInfo
Recupera información sobre un control de vista de lista en la vista de mosaico.
BOOL GetTileViewInfo(PLVTILEVIEWINFO ptvi) const;
Parámetros
ptvi
Un puntero que apunta a una estructura LVTILEVIEWINFO
que recibe la información recuperada.
Valor devuelto
No se usa el valor devuelto.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_GETTILEVIEWINFO
, tal como se describe en Windows SDK.
CListCtrl::GetToolTips
Recupera el control de información sobre herramientas que usa el control de vista de lista para mostrar información sobre herramientas.
CToolTipCtrl* GetToolTips() const;
Valor devuelto
Puntero que apunta a un objeto CToolTipCtrl
que va a usar el control de lista. Si la función miembro Create
usa el estilo LVS_NOTOOLTIPS
, no se usa ninguna información sobre herramientas y se devuelve el valor NULL.
Comentarios
En esta función miembro, se implementa el comportamiento del mensaje LVM_GETTOOLTIPS
de Win32, tal y como se describe en Windows SDK. La implementación de MFC de GetToolTips
devuelve un objeto CToolTipCtrl
, que usa el control de lista, en lugar de un manipulador para un control de información sobre herramientas.
Ejemplo
CToolTipCtrl* pTip = m_myListCtrl.GetToolTips();
if (NULL != pTip)
{
pTip->UpdateTipText(_T("I'm a list view!"), &m_myListCtrl,
IDD_MYLISTCTRL);
}
CListCtrl::GetTopIndex
Recupera el índice del elemento visible más de nivel superior cuando está en la vista de lista o en la vista de informe.
int GetTopIndex() const;
Valor devuelto
Índice del elemento visible de nivel superior.
Ejemplo
// Make sure the focus is set to the list view control.
m_myListCtrl.SetFocus();
// Select all of the items that are completely visible.
int n = m_myListCtrl.GetTopIndex();
int nLast = n + m_myListCtrl.GetCountPerPage();
for (; n < nLast; n++)
{
m_myListCtrl.SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);
ASSERT(m_myListCtrl.GetItemState(n, LVIS_SELECTED) == LVIS_SELECTED);
}
CListCtrl::GetView
Obtiene la vista del control de vista de lista.
DWORD GetView() const;
Valor devuelto
Vista actual del control de vista de lista.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_GETVIEW
, tal como se describe en Windows SDK.
CListCtrl::GetViewRect
Recupera el rectángulo delimitador de todos los elementos del control de vista de lista.
BOOL GetViewRect(LPRECT lpRect) const;
Parámetros
lpRect
Dirección de una estructura RECT
.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
La vista de lista debe estar en la vista de icono o en la vista de icono pequeño.
CListCtrl::GetWorkAreas
Recupera las áreas de trabajo actuales de un control de vista de lista.
void GetWorkAreas(
int nWorkAreas,
LPRECT pRect) const;
Parámetros
nWorkAreas
Número de estructuras RECT
contenidas en la matriz pRect
.
pRect
Puntero que apunta a una matriz de estructuras RECT
(u objetos CRect
) que reciben las áreas de trabajo del control de vista de lista. Los valores de estas estructuras están en las coordenadas cliente.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_GetWorkAreas
, tal y como se describe en Windows SDK.
Ejemplo
Vea el ejemplo de CListCtrl::GetNumberOfWorkAreas
.
CListCtrl::HasGroup
Determina si el control de vista de lista tiene el grupo especificado.
BOOL HasGroup(int iGroupId) const;
Parámetros
iGroupId
Identificador del grupo que se solicita.
Valor devuelto
Devuelve TRUE
si la operación se realiza correctamente; de lo contrario, devuelve FALSE
.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_HASGROUP
, tal como se describe en Windows SDK.
CListCtrl::HitTest
Determina qué elemento de vista de lista, si existe, está en una posición especificada.
int HitTest(LVHITTESTINFO* pHitTestInfo) const;
int HitTest(
CPoint pt,
UINT* pFlags = NULL) const;
Parámetros
pHitTestInfo
Dirección de una estructura LVHITTESTINFO
que contiene la posición de la prueba de posicionamiento y que recibe información sobre los resultados de la prueba de posicionamiento.
pt
Apunte a probar.
pFlags
Puntero que apunta a un entero que recibe información sobre los resultados de la prueba. Vea la explicación del miembro flags
de la estructura LVHITTESTINFO
en Windows SDK.
Valor devuelto
Índice del elemento en la posición especificada por pHitTestInfo
, si existe o -1 en caso contrario.
Comentarios
Puede usar los valores LVHT_ABOVE
, LVHT_BELOW
, LVHT_TOLEFT
y LVHT_TORIGHT
del miembro flag
de la estructura para determinar si se va a desplazar el contenido de un control de vista de lista. Se pueden combinar dos de estas marcas, por ejemplo, si la posición está por encima y a la izquierda del área cliente.
Puede probar el valor LVHT_ONITEM
del miembro flag
de la estructura para determinar si una posición determinada se encuentra sobre un elemento de vista de lista. Este valor es una operación OR bit a bit en los valores LVHT_ONITEMICON
, LVHT_ONITEMLABEL
y LVHT_ONITEMSTATEICON
del miembro flag
de la estructura.
Ejemplo
void CListCtrlDlg::OnRClick(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMITEMACTIVATE pia = (LPNMITEMACTIVATE)pNMHDR;
CPoint point(pia->ptAction);
// Select the item the user clicked on.
UINT uFlags;
int nItem = m_myListCtrl.HitTest(point, &uFlags);
if (uFlags & LVHT_ONITEMLABEL)
{
m_myListCtrl.SetItem(nItem, 0, LVIF_STATE, NULL, 0, LVIS_SELECTED,
LVIS_SELECTED, 0);
}
*pResult = 0;
}
CListCtrl::InsertColumn
Inserta una columna nueva en un control de vista de lista.
int InsertColumn(
int nCol,
const LVCOLUMN* pColumn);
int InsertColumn(
int nCol,
LPCTSTR lpszColumnHeading,
int nFormat = LVCFMT_LEFT,
int nWidth = -1,
int nSubItem = -1);
Parámetros
nCol
Índice de la nueva columna.
pColumn
Dirección de una estructura LVCOLUMN
que contiene los atributos de la nueva columna.
lpszColumnHeading
Dirección de una cadena que contiene el título de la columna.
nFormat
Entero que especifica la alineación de la columna. Puede ser uno de estos valores: LVCFMT_LEFT
, LVCFMT_RIGHT
o LVCFMT_CENTER
.
nWidth
Ancho de la columna, expresado en píxeles. Si este parámetro es -1, no se establece el ancho de columna.
nSubItem
Índice del subelemento asociado a la columna. Si este parámetro es -1, no hay ningún subelemento asociado a la columna.
Valor devuelto
Índice de la nueva columna si se ejecuta correctamente o -1 en caso contrario.
Comentarios
La columna situada en el extremo izquierdo de un control de vista de lista debe estar alineada a la izquierda.
La estructura LVCOLUMN
contiene los atributos de una columna en la vista de informe. También se usa para recibir información sobre una columna. Esta estructura se describe en Windows SDK.
CListCtrl::InsertGroup
Inserta un grupo en el control de vista de lista.
LRESULT InsertGroup(
int index,
PLVGROUP pgrp);
Parámetros
index
Índice del elemento donde se va a insertar el grupo.
pgrp
Puntero que apunta a una estructura LVGROUP
que contiene el grupo que se va a agregar.
Valor devuelto
Devuelve el índice del elemento al que se agregó el grupo o -1 si se produjo un error en la operación.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_INSERTGROUP
, tal como se describe en Windows SDK.
CListCtrl::InsertGroupSorted
Inserta el grupo especificado en una lista ordenada de grupos.
LRESULT InsertGroupSorted(PLVINSERTGROUPSORTED pStructInsert);
Parámetros
pStructInsert
Puntero que apunta a una estructura LVINSERTGROUPSORTED
que contiene el grupo que se va a insertar.
Valor devuelto
No se usa el valor devuelto.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_INSERTGROUPSORTED
, tal como se describe en Windows SDK.
CListCtrl::InsertItem
Inserta un elemento en el control de vista de lista.
int InsertItem(const LVITEM* pItem);
int InsertItem(
int nItem,
LPCTSTR lpszItem);
int InsertItem(
int nItem,
LPCTSTR lpszItem,
int nImage);
int InsertItem(
UINT nMask,
int nItem,
LPCTSTR lpszItem,
UINT nState,
UINT nStateMask,
int nImage,
LPARAM lParam);
Parámetros
pItem
Puntero que apunta a una estructura LVITEM que especifica los atributos del elemento, como se describe en Windows SDK.
nItem
Índice del elemento que se va a insertar.
lpszItem
Dirección de una cadena que contiene la etiqueta del elemento o LPSTR_TEXTCALLBACK
si el elemento es de devolución de llamada. Para obtener información sobre los elementos de devolución de llamada, consulte CListCtrl::GetCallbackMask
.
nImage
Índice de la imagen del elemento o I_IMAGECALLBACK
si el elemento es de devolución de llamada. Para obtener información sobre los elementos de devolución de llamada, consulte CListCtrl::GetCallbackMask
.
nMask
El parámetro nMask
especifica qué atributos de elemento pasados como parámetros son válidos. Puede ser uno o varios de los valores de máscara descritos en Estructura LVITEM
en Windows SDK. Los valores válidos se pueden combinar con el operador OR bit a bit.
nState
Indica el estado, la imagen de estado y la imagen de superposición del elemento. Para más información, consulte los temas Estructura LVITEM
y Estados de elementos de vista de lista en Windows SDK para obtener una lista de marcas válidas.
nStateMask
Indica qué bits del miembro de estado se recuperarán o modificarán. Para más información, consulte Estructura LVITEM
en Windows SDK.
lParam
Valor específico de la aplicación de 32 bits (64 bits si compila para x64) asociado al elemento. Si se especifica este parámetro, debe establecer el elemento LVIF_PARAM
del atributo nMask
.
Valor devuelto
Índice del nuevo elemento si se realiza correctamente o -1 en caso contrario.
Comentarios
Llamar a este método puede hacer que el mensaje LVM_INSERTITEM
se envíe a la ventana de control. Es posible que el controlador de mensajes asociado del control no pueda establecer el texto del elemento en condiciones determinadas (como el uso de estilos de ventana como LVS_OWNERDRAW
). Para más información sobre estas condiciones, consulte LVM_INSERTITEM
en Windows SDK.
Ejemplo
CString strText;
int nColumnCount = m_myListCtrl.GetHeaderCtrl()->GetItemCount();
// Insert 10 items in the list view control.
for (int i = 0; i < 10; i++)
{
strText.Format(TEXT("item %d"), i);
// Insert the item, select every other item.
m_myListCtrl.InsertItem(LVIF_TEXT | LVIF_STATE, i, strText,
(i % 2) == 0 ? LVIS_SELECTED : 0, LVIS_SELECTED, 0, 0);
// Initialize the text of the subitems.
for (int j = 1; j < nColumnCount; j++)
{
strText.Format(TEXT("sub-item %d %d"), i, j);
m_myListCtrl.SetItemText(i, j, strText);
}
}
CListCtrl::InsertMarkHitTest
Recupera el punto de inserción más cercano a un punto especificado.
int InsertMarkHitTest(
LPPOINT pPoint,
LPLVINSERTMARK plvim) const;
Parámetros
pPoint
Puntero que apunta a una estructura POINT
que contiene las coordenadas de la prueba de posicionamiento, en relación con el área cliente del control de lista.
plvim
Puntero que apunta a una estructura LVINSERTMARK
que especifica el punto de inserción más cercano a las coordenadas definidas por el parámetro point.
Valor devuelto
Punto de inserción más cercano al punto especificado.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_INSERTMARKHITTEST
, tal como se describe en Windows SDK.
CListCtrl::IsGroupViewEnabled
Determina si la vista de grupo está habilitada para un control de vista de lista.
BOOL IsGroupViewEnabled() const;
Valor devuelto
Devuelve TRUE
si la vista de grupo está habilitada o FALSE
en caso contrario.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_ISGROUPVIEWENABLED
, tal como se describe en Windows SDK.
CListCtrl::IsItemVisible
Indica si un elemento especificado en el control de vista de lista actual está visible.
BOOL IsItemVisible(int index) const;
Parámetros
index
[entrada] Índice de base cero de un elemento en el control de vista de lista actual.
Valor devuelto
TRUE
si el elemento especificado es visible; de lo contrario, FALSE
.
Comentarios
Al usar este método, se envía el mensaje LVM_ISITEMVISIBLE
, que se describe en Windows SDK.
CListCtrl::MapIDToIndex
Asigna el identificador único de un elemento del control de vista de lista actual a un índice.
UINT MapIDToIndex(UINT id) const;
Parámetros
id
[entrada] Identificador único de un elemento.
Valor devuelto
Índice actual del identificador especificado.
Comentarios
Un control de vista de lista hace un seguimiento interno de los elementos por índice. Esto puede presentar problemas porque los índices pueden cambiar durante la duración del control. El control de vista de lista puede etiquetar un elemento con un identificador cuando se crea el elemento y se puede usar este identificador para garantizar la unicidad durante la vigencia del control de vista de lista.
En un entorno multiproceso, el índice solo se garantiza en el subproceso que hospeda el control de vista de lista, no en subprocesos en segundo plano.
Al usar este método, se envía el mensaje LVM_MAPIDTOINDEX
, que se describe en Windows SDK.
CListCtrl::MapIndexToID
Asigna el índice de un elemento del control de vista de lista actual a un identificador único.
UINT MapIndexToID(UINT index) const;
Parámetros
index
[entrada] Índice de base cero de un elemento.
Valor devuelto
Identificador único del elemento especificado.
Comentarios
Un control de vista de lista hace un seguimiento interno de los elementos por índice. Esto puede presentar problemas porque los índices pueden cambiar durante la duración del control. El control de vista de lista puede etiquetar un elemento con un identificador cuando se crea el elemento. Puede usar este identificador para acceder a un elemento específico durante la vigencia del control de vista de lista.
En un entorno multiproceso, el índice solo se garantiza en el subproceso que hospeda el control de vista de lista, no en subprocesos en segundo plano.
Al usar este método, se envía el mensaje LVM_MAPINDEXTOID
, que se describe en Windows SDK.
Ejemplo
En el primer ejemplo de código se define una variable, m_listCtrl
, que se usa para acceder al control de vista de lista actual. Esta variable se utiliza en el siguiente ejemplo.
public:
// Variable used to access the list control.
CListCtrl m_listCtrl;
En el siguiente código de ejemplo se muestra el método MapIndexToID
. En una sección anterior de este ejemplo de código, creamos un control de vista de lista que muestra dos columnas tituladas "ClientID" y "Grade" en una vista de informe. En el ejemplo siguiente se asigna el índice de cada elemento de vista de lista a un número de identificación y, luego, se recupera el índice de cada número de identificación. Por último, el ejemplo informa de si se recuperaron los índices originales.
// MapIndexToID
int iCount = m_listCtrl.GetItemCount();
UINT nId = 0;
UINT nIndex = 0;
for (int iIndexOriginal = 0; iIndexOriginal < iCount; iIndexOriginal++)
{
// Map index to ID.
nId = m_listCtrl.MapIndexToID((UINT)iIndexOriginal);
// Map ID to index.
nIndex = m_listCtrl.MapIDToIndex(nId);
if (nIndex != (UINT)(iIndexOriginal))
{
CString str;
str.Format(_T("Mapped index (%d) is not equal to original index (%d)"),
nIndex, (UINT)(iIndexOriginal));
AfxMessageBox(str);
return;
}
}
AfxMessageBox(_T("The mapped indexes and original indexes are equal."),
MB_ICONINFORMATION);
CListCtrl::MoveGroup
Mueve el grupo especificado al índice de base cero especificado del control de vista de lista.
LRESULT MoveGroup(
int iGroupId,
int toIndex);
Parámetros
iGroupId
Identificador del grupo que se va a mover.
toIndex
Índice de base cero donde se va a mover el grupo.
Valor devuelto
No se usa el valor devuelto.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_MOVEGROUP
, tal como se describe en Windows SDK.
CListCtrl::MoveItemToGroup
Mueve el elemento especificado al grupo especificado.
void MoveItemToGroup(
int idItemFrom,
int idGroupTo);
Parámetros
idItemFrom
[entrada] Índice del elemento que se va a mover.
idGroupTo
[entrada] Identificador del grupo al que se moverá el elemento.
Comentarios
Nota:
Este método no está implementado actualmente.
Este método emula la funcionalidad del mensaje LVM_MOVEITEMTOGROUP
, tal y como se describe en Windows SDK.
CListCtrl::RedrawItems
Fuerza un control de vista de lista para volver a dibujar un intervalo de elementos.
BOOL RedrawItems(
int nFirst,
int nLast);
Parámetros
nFirst
Índice del primer elemento que se va a volver a pintar.
nLast
Índice del último elemento que se va a volver a pintar.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
Los elementos especificados no se vuelven a pintar hasta que la ventana de vista de lista recibe un mensaje de WM_PAINT. Para volver a pintar inmediatamente, llame a la función UpdateWindow
de Windows después de usar esta función.
CListCtrl::RemoveAllGroups
Quita todos los grupos de un control de vista de lista.
void RemoveAllGroups();
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_REMOVEALLGROUPS
, tal como se describe en Windows SDK.
CListCtrl::RemoveGroup
Quita el grupo especificado del control de vista de lista.
LRESULT RemoveGroup(int iGroupId);
Parámetros
iGroupId
Identificador del grupo que se va a quitar.
Valor devuelto
Devuelve el índice del grupo si se ejecuta correctamente o -1 de lo contrario.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_REMOVEGROUP
, tal como se describe en Windows SDK.
CListCtrl::Scroll
Desplaza el contenido de un control de vista de lista.
BOOL Scroll(CSize size);
Parámetros
size
Objeto CSize
que especifica la cantidad de desplazamiento horizontal y vertical, en píxeles. El miembro y
de size se divide por el alto, en píxeles, de la línea del control de vista de lista y el control se desplaza por el número resultante de líneas.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
CListCtrl::SetBkColor
Establece el color de fondo del control de vista de lista.
BOOL SetBkColor(COLORREF cr);
Parámetros
cr
Color de fondo que se va a establecer o el valor CLR_NONE
de ningún color de fondo. Los controles de vista de lista con colores de fondo se vuelven a pintar significativamente más rápido que los que no tienen colores de fondo. Para obtener información, consulte COLORREF
en Windows SDK.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Ejemplo
// Use the 3D button face color for the background.
COLORREF crBkColor = ::GetSysColor(COLOR_3DFACE);
m_myListCtrl.SetBkColor(crBkColor);
ASSERT(m_myListCtrl.GetBkColor() == crBkColor);
CListCtrl::SetBkImage
Establece la imagen de fondo de un control de vista de lista.
BOOL SetBkImage(LVBKIMAGE* plvbkImage);
BOOL SetBkImage(
HBITMAP hBitmap,
BOOL fTile = TRUE,
int xOffsetPercent = 0,
int yOffsetPercent = 0);
BOOL SetBkImage(
LPTSTR pszUrl,
BOOL fTile = TRUE,
int xOffsetPercent = 0,
int yOffsetPercent = 0);
Parámetros
plvbkImage
Dirección de una estructura LVBKIMAGE
que contiene la nueva información de imagen de fondo.
hBitmap
Manipulador de un mapa de bits.
pszUrl
Cadena terminada en NULL
que contiene la dirección URL de la imagen de fondo.
fTile
Distinto de cero si la imagen se va a crear en mosaico en el fondo del control de vista de lista; de lo contrario, 0.
xOffsetPercent
Desplazamiento en píxeles del borde izquierdo de la imagen, desde el origen del control de vista de lista.
yOffsetPercent
Desplazamiento en píxeles del borde superior de la imagen, desde el origen del control de vista de lista.
Valor devuelto
Devuelve un valor distinto de cero si se ejecuta correctamente o cero en caso contrario.
Comentarios
Nota:
Dado que CListCtrl::SetBkImage
usa la funcionalidad OLE y COM, las bibliotecas OLE deben inicializarse antes de usar SetBkImage
. Es mejor inicializar las bibliotecas COM cuando la aplicación se inicializa y anula la inicialización de las bibliotecas cuando finaliza la aplicación. Esto se hace automáticamente en las aplicaciones MFC que usan la tecnología ActiveX, la automatización OLE, la vinculación e inserción OLE o las operaciones ODBC y DAO.
Ejemplo
Vea el ejemplo de CListCtrl::GetBkImage
.
CListCtrl::SetCallbackMask
Establece la máscara de devolución de llamada de un control de vista de lista.
BOOL SetCallbackMask(UINT nMask);
Parámetros
nMask
Nuevo valor de la máscara de devolución de llamada.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Ejemplo
// Set the callback mask so that only the selected and focused states
// are stored for each item.
m_myListCtrl.SetCallbackMask(LVIS_SELECTED|LVIS_FOCUSED);
ASSERT(m_myListCtrl.GetCallbackMask() ==
(LVIS_SELECTED|LVIS_FOCUSED));
CListCtrl::SetCheck
Determina si la imagen de estado de un elemento de control de lista es visible.
BOOL SetCheck(
int nItem,
BOOL fCheck = TRUE);
Parámetros
nItem
Índice de base cero de un elemento de control de lista.
fCheck
Especifica si la imagen de estado del elemento debe ser visible o no. De forma predeterminada, fCheck
es TRUE
y la imagen de estado está visible. Si fCheck
es FALSE
, no está visible.
Valor devuelto
Es distinto de cero si el elemento está activado; de lo contrario, es 0.
Ejemplo
int nCount = m_myListCtrl.GetItemCount();
BOOL fCheck = FALSE;
// Set the check state of every other item to TRUE and
// all others to FALSE.
for (int i = 0; i < nCount; i++)
{
m_myListCtrl.SetCheck(i, fCheck);
ASSERT((m_myListCtrl.GetCheck(i) && fCheck) ||
(!m_myListCtrl.GetCheck(i) && !fCheck));
fCheck = !fCheck;
}
CListCtrl::SetColumn
Establece los atributos de una columna de vista de lista.
BOOL SetColumn(
int nCol,
const LVCOLUMN* pColumn);
Parámetros
nCol
Índice de la columna cuyos atributos se van a establecer.
pColumn
Dirección de una estructura LVCOLUMN
que contiene los nuevos atributos de columna, como se describe en Windows SDK. El miembro de la estructura mask
especifica qué atributos de columna se van a establecer. Si el miembro mask
especifica el valor LVCF_TEXT
, el miembro pszText
de la estructura es la dirección de una cadena terminada en NULL y se omite el miembro cchTextMax
de la estructura.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Ejemplo
Vea el ejemplo de CListCtrl::GetColumn
.
CListCtrl::SetColumnOrderArray
Establece el orden de columna (de izquierda a derecha) de un control de vista de lista.
BOOL SetColumnOrderArray(
int iCount,
LPINT piArray);
Parámetros
piArray
Puntero que apunta a un búfer que contiene los valores de índice de las columnas del control de vista de lista (de izquierda a derecha). El búfer debe ser lo suficientemente grande como para contener la cantidad total de columnas del control de vista de lista.
iCount
Número de columnas del control de vista de lista.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_SetColumnOrderArray
, tal y como se describe en Windows SDK.
Ejemplo
Vea el ejemplo de CListCtrl::GetColumnOrderArray
.
CListCtrl::SetColumnWidth
Cambia el ancho de una columna en la vista de informe o vista de lista.
BOOL SetColumnWidth(
int nCol,
int cx);
Parámetros
nCol
Índice de la columna para la que se va a establecer el ancho. En la vista de lista, este parámetro debe ser 0.
cx
Nuevo ancho de la columna. Puede ser LVSCW_AUTOSIZE
o LVSCW_AUTOSIZE_USEHEADER
, como se describe en LVM_SETCOLUMNWIDTH
en Windows SDK.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
CListCtrl::SetExtendedStyle
Establece los estilos extendidos actuales de un control de vista de lista.
DWORD SetExtendedStyle(DWORD dwNewStyle);
Parámetros
dwNewStyle
Combinación de estilos extendidos que usará el control de vista de lista. Para obtener una lista descriptiva de estos estilos, consulte el tema Estilos extendidos de vista de lista en Windows SDK.
Valor devuelto
Combinación de los estilos extendidos anteriores usados por el control de vista de lista.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_SetExtendedListViewStyle
, tal y como se describe en Windows SDK.
Ejemplo
// Allow the header controls item to be movable by the user.
m_myListCtrl.SetExtendedStyle
(m_myListCtrl.GetExtendedStyle()|LVS_EX_HEADERDRAGDROP);
CListCtrl::SetGroupInfo
Establece la información que describe el grupo especificado del control de vista de lista actual.
int SetGroupInfo(
int iGroupId,
PLVGROUP pgrp);
Parámetros
iGroupId
Identificador del grupo cuya información está establecida.
pgrp
Puntero que apunta a una estructura LVGROUP
que contiene la información que se va a establecer. El autor de la llamada es responsable de asignar esta estructura y establecer sus miembros.
Valor devuelto
Identificador del grupo si el método es correcto; de lo contrario, -1.
Comentarios
Al usar este método, se envía el mensaje LVM_SETGROUPINFO
, que se describe en Windows SDK.
CListCtrl::SetGroupMetrics
Establece las métricas de grupo de un control de vista de lista.
void SetGroupMetrics(PLVGROUPMETRICS pGroupMetrics);
Parámetros
pGroupMetrics
Puntero que apunta a una estructura LVGROUPMETRICS
que contiene la información de las métricas de grupo que se va a establecer.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_SETGROUPMETRICS
, tal como se describe en Windows SDK.
CListCtrl::SetHotCursor
Establece el cursor utilizado cuando el seguimiento activo está habilitado para un control de vista de lista.
HCURSOR SetHotCursor(HCURSOR hc);
Parámetros
hc
Manipulador de un recurso de cursor que se usa para representar el cursor activo.
Valor devuelto
Manipulador del recurso de cursor activo anterior que usa el control de vista de lista.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_SetHotCursor
, tal y como se describe en Windows SDK.
El cursor activo, que solo es visible cuando se habilita la selección mediante movimiento del mouse, aparece a medida que el cursor pasa sobre cualquier elemento de vista de lista. La selección mediante movimiento del mouse se habilitada al establecer el estilo extendido de LVS_EX_TRACKSELECT
.
Ejemplo
Vea el ejemplo de CListCtrl::GetHotCursor
.
CListCtrl::SetHotItem
Establece el elemento activo actual de un control de vista de lista.
int SetHotItem(int iIndex);
Parámetros
iIndex
Índice de base cero del elemento que se va a establecer como elemento activo.
Valor devuelto
Índice de base cero del elemento de acceso rápido anterior.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_SetHotItem
, tal y como se describe en Windows SDK.
Ejemplo
Vea el ejemplo de CListCtrl::GetHotItem
.
CListCtrl::SetHoverTime
Establece el tiempo actual del movimiento del mouse de un control de vista de lista.
DWORD SetHoverTime(DWORD dwHoverTime = (DWORD)-1);
Parámetros
dwHoverTime
El nuevo retraso, en milisegundos, que el cursor del mouse debe mantener el puntero sobre un elemento antes de seleccionarlo. Si se pasa el valor predeterminado, la hora se establece en el tiempo de movimiento del mouse predeterminado.
Valor devuelto
Tiempo de movimiento del mouse anterior, en milisegundos.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_SetHoverTime
, tal y como se describe en Windows SDK.
Ejemplo
Vea el ejemplo de CListCtrl::GetHoverTime
.
CListCtrl::SetIconSpacing
Establece el espaciado entre iconos de un control de vista de lista.
CSize SetIconSpacing(
int cx,
int cy);
CSize SetIconSpacing(CSize size);
Parámetros
cx
Distancia (en píxeles) entre iconos en el eje X.
cy
Distancia (en píxeles) entre iconos en el eje Y.
size
Objeto CSize
que especifica la distancia (en píxeles) entre los iconos de los ejes X e Y.
Valor devuelto
Objeto CSize
que contiene los valores anteriores para el espaciado de iconos.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_SetIconSpacing
, tal y como se describe en Windows SDK.
Ejemplo
// Leave lots of space between icons.
m_myListCtrl.SetIconSpacing(CSize(100, 100));
CListCtrl::SetImageList
Asigna una lista de imágenes a un control de vista de lista.
CImageList* SetImageList(
CImageList* pImageList,
int nImageListType);
Parámetros
pImageList
Puntero que apunta a la lista de imágenes que se va a asignar.
nImageListType
Tipo de lista de imágenes. Puede ser uno de estos valores:
LVSIL_NORMAL
Lista de imágenes con iconos grandes.LVSIL_SMALL
Lista de imágenes con iconos pequeños.LVSIL_STATE
Lista de imágenes con imágenes de estado.
Valor devuelto
Puntero que apunta a la lista de imágenes anterior.
Ejemplo
Vea el ejemplo de CListCtrl::GetImageList
.
CListCtrl::SetInfoTip
Establece el texto de la información sobre herramientas.
BOOL SetInfoTip(PLVSETINFOTIP plvInfoTip);
Parámetros
plvInfoTip
Puntero que apunta a una estructura LVFSETINFOTIP
que contiene la información que se va a establecer.
Valor devuelto
Devuelve TRUE
si la operación se realiza correctamente; de lo contrario, devuelve FALSE
.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_SETINFOTIP
, tal como se describe en Windows SDK.
CListCtrl::SetInsertMark
Establece el punto de inserción en la posición definida.
BOOL SetInsertMark(LPLVINSERTMARK plvim);
Parámetros
plvim
Puntero que apunta a una estructura LVINSERTMARK
que especifica dónde establecer el punto de inserción.
Valor devuelto
Devuelve TRUE
si se realizó correctamente; de lo contrario, FALSE
. FALSE
se devuelve si el tamaño del miembro cbSize
de la estructura LVINSERTMARK
no es igual al tamaño real de la estructura o cuando un punto de inserción no se aplica en la vista actual.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_SETINSERTMARK
, tal como se describe en Windows SDK.
CListCtrl::SetInsertMarkColor
Establece el color del punto de inserción.
COLORREF SetInsertMarkColor(COLORREF color);
Parámetros
color
Estructura COLORREF
que especifica el color en que se va a establecer el punto de inserción.
Valor devuelto
Devuelve una estructura COLORREF
que contiene el color anterior.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_SETINSERTMARKCOLOR
, tal como se describe en Windows SDK.
CListCtrl::SetItem
Establece algunos o todos los atributos de un elemento de vista de lista.
BOOL SetItem(const LVITEM* pItem);
BOOL SetItem(
int nItem,
int nSubItem,
UINT nMask,
LPCTSTR lpszItem,
int nImage,
UINT nState,
UINT nStateMask,
LPARAM lParam);
BOOL SetItem(
int nItem,
int nSubItem,
UINT nMask,
LPCTSTR lpszItem,
int nImage,
UINT nState,
UINT nStateMask,
LPARAM lParam,
int nIndent);
Parámetros
pItem
Dirección de una estructura LVITEM
que contiene los nuevos atributos de elemento, como se describe en Windows SDK. Los miembros iItem
y iSubItem
de la estructura identifican el elemento o subelemento, y el miembro mask
de la estructura especifica los atributos que se van a establecer. Para más información sobre el miembro mask
, consulte los comentarios.
nItem
Índice del elemento cuyos atributos se van a establecer.
nSubItem
Índice del subelemento cuyos atributos se van a establecer.
nMask
Especifica los atributos que se van a establecer (vea los comentarios).
lpszItem
Dirección de una cadena terminada en NULL que especifica la etiqueta del elemento.
nImage
Índice de la imagen del elemento en la lista de imágenes.
nState
Especifica los valores de los estados que se van a cambiar (vea los comentarios).
nStateMask
Especifica qué estados se van a cambiar (vea los comentarios).
lParam
Valor específico de la aplicación de 32 bits (64 bits si compila para x64) para asociarlo al elemento.
nIndent
Ancho, en píxeles, de la sangría. Si nIndent
es menor que el ancho mínimo definido por el sistema, el nuevo ancho se establece en el mínimo definido por el sistema.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
Los miembros iItem
y iSubItem
de la estructura LVITEM
y los parámetros nItem
y nSubItem
identifican el elemento y el subelemento cuyos atributos se van a establecer.
El miembro mask
de la estructura LVITEM
y el parámetro nMask
especifican qué atributos de elemento se van a establecer:
LVIF_TEXT
El miembropszText
o el parámetrolpszItem
es la dirección de una cadena terminada en NULL; el miembrocchTextMax
se omite.LVIF_STATE
El miembrostateMask
o el parámetronStateMask
especifica qué estados de elemento se van a cambiar y el miembrostate
o parámetronState
contiene los valores de esos estados.
Ejemplo
Vea el ejemplo de CListCtrl::HitTest
.
CListCtrl::SetItemCount
Prepara un control de vista de lista para agregar una gran cantidad de elementos.
void SetItemCount(int nItems);
Parámetros
nItems
Número de elementos que el control contendrá en última instancia.
Comentarios
Para establecer el recuento de elementos de un control de vista de lista virtual, consulte CListCtrl::SetItemCountEx
.
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_SetItemCount
, tal y como se describe en Windows SDK.
Ejemplo
CString str;
// Add 1024 items to the list view control.
m_myListCtrl.SetItemCount(1024);
for (int i = 0; i < 1024; i++)
{
str.Format(TEXT("item %d"), i);
m_myListCtrl.InsertItem(i, str);
}
CListCtrl::SetItemCountEx
Establece el recuento de elementos de un control de vista de lista virtual.
BOOL SetItemCountEx(
int iCount,
DWORD dwFlags = LVSICF_NOINVALIDATEALL);
Parámetros
iCount
Número de elementos que el control contendrá en última instancia.
dwFlags
Especifica el comportamiento del control de vista de lista después de restablecer el recuento de elementos. Este valor puede ser una combinación de lo siguiente:
LVSICF_NOINVALIDATEALL
El control de vista de lista no se vuelve a pintar a menos que los elementos afectados se encuentren actualmente en vista. Este es el valor predeterminado.LVSICF_NOSCROLL
El control de vista de lista no cambiará la posición de desplazamiento cuando cambie el recuento de elementos.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
En esta función miembro se implementa el comportamiento de la macro de Win32, ListView_SetItemCountEx
, tal y como se describe en Windows SDK y solo se debe llamar para las vistas de lista virtuales.
Ejemplo
CString str;
// Add 1024 items to the list view control.
// Force my virtual list view control to allocate
// enough memory for my 1024 items.
m_myVirtualListCtrl.SetItemCountEx(1024, LVSICF_NOSCROLL|
LVSICF_NOINVALIDATEALL);
for (int i = 0; i < 1024; i++)
{
str.Format(TEXT("item %d"), i);
m_myVirtualListCtrl.InsertItem(i, str);
}
CListCtrl::SetItemData
Establece el valor específico de la aplicación de 32 bits (64 bits si compila para x64) el valor específico de la aplicación asociado al elemento especificado por nItem
.
BOOL SetItemData(int nItem, DWORD_PTR dwData);
Parámetros
nItem
Índice del elemento de lista cuyos datos se van a establecer.
dwData
Valor de 32 bits (64 bits si compila para x64) para asociarlo al elemento.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Este valor es el miembro lParam
de la estructura LVITEM
, como se describe en Windows SDK.
Ejemplo
// Set the data of each item to be equal to its index.
for (int i = 0; i < m_myListCtrl.GetItemCount(); i++)
{
m_myListCtrl.SetItemData(i, i);
}
CListCtrl::SetItemIndexState
Establece el estado de un elemento del control de vista de lista actual.
BOOL SetItemIndexState(
PLVITEMINDEX pItemIndex,
DWORD dwState,
DWORD dwMask) const;
Parámetros
pItemIndex
[entrada] Puntero a una estructura LVITEMINDEX
que describe un elemento. El autor de la llamada es responsable de asignar esta estructura y establecer sus miembros.
dwState
[entrada] Estado que se va a establecer el elemento, que es una combinación bit a bit de estados de elementos de vista de lista. Especifique cero para restablecer, o uno que se va a establecer, un estado.
dwMask
[entrada] Máscara de los bits válidos del estado especificado por el parámetro dwState
. Especifique una combinación bit a bit (OR) de los estados de elementos de vista de lista.
Valor devuelto
TRUE
si este método es correcto; en caso contrario, FALSE
.
Comentarios
Para más información sobre el parámetro dwState
, consulte Estados de elementos de vista de lista.
Para más información sobre el parámetro dwMask
, consulte el miembro stateMask
de la estructura LVITEM
.
Al usar este método, se envía el mensaje LVM_SETITEMINDEXSTATE
, que se describe en Windows SDK.
CListCtrl::SetItemPosition
Mueve un elemento a una posición especificada en un control de vista de lista.
BOOL SetItemPosition(
int nItem,
POINT pt);
Parámetros
nItem
Índice del elemento cuya posición se va a establecer.
pt
Estructura POINT
que especifica la nueva posición, en coordenadas de vista, de la esquina superior izquierda del elemento.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
El control debe estar en el icono o en la vista de icono pequeño.
Si el control de vista de lista tiene el estilo de LVS_AUTOARRANGE
, la vista de lista se organiza después de establecer la posición del elemento.
Ejemplo
Vea el ejemplo de CListCtrl::GetItemPosition
.
CListCtrl::SetItemState
Cambia el estado de un elemento en un control de vista de lista.
BOOL SetItemState(
int nItem,
LVITEM* pItem);
BOOL SetItemState(
int nItem,
UINT nState,
UINT nMask);
Parámetros
nItem
Índice del elemento cuyo estado se va a establecer. Pase -1 para aplicar el cambio de estado a todos los elementos.
pItem
Dirección de una estructura LVITEM
, como se describe en Windows SDK. El miembro stateMask
de la estructura especifica los bits de estado que se van a cambiar y el miembro state
de la estructura contiene los nuevos valores de esos bits. Se omiten los demás miembros.
nState
Nuevos valores para los bits de estado. Para obtener una lista de los valores posibles, consulte CListCtrl::GetNextItem
y el miembro de estado LVITEM
.
nMask
Máscara que especifica los bits de estado que se van a cambiar. Este valor corresponde al miembro stateMask de la estructura LVITEM
.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
El "estado" de un elemento es un valor que especifica la disponibilidad del elemento, indica las acciones del usuario o, de lo contrario, refleja el estado del elemento. Un control de vista de lista cambia algunos bits de estado, como cuando el usuario selecciona un elemento. Una aplicación puede cambiar otros bits de estado para deshabilitar u ocultar el elemento, o para especificar una imagen de superposición o imagen de estado.
Ejemplo
Vea el ejemplo de CListCtrl::GetTopIndex
.
CListCtrl::SetItemText
Cambia el texto de un elemento de vista de lista o subelemento.
BOOL SetItemText(
int nItem,
int nSubItem,
LPCTSTR lpszText);
Parámetros
nItem
Índice del elemento cuyo texto se va a establecer.
nSubItem
Índice del subelemento o cero para establecer la etiqueta del elemento.
lpszText
Puntero que apunta a una cadena que contiene el texto del nuevo elemento.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
Este método no está pensado para su uso con controles que contienen el estilo de ventana LVS_OWNERDATA
(de hecho, esto provocará una aserción en compilaciones de depuración). Para más información sobre este estilo de control de lista, consulte Información general sobre los controles de vista de lista.
Ejemplo
Vea el ejemplo de CListCtrl::InsertItem
.
CListCtrl::SetOutlineColor
Establece el color del borde de un control de vista de lista si se establece el estilo de ventana extendida LVS_EX_BORDERSELECT
.
COLORREF SetOutlineColor(COLORREF color);
Parámetros
color
La nueva estructura COLORREF
que contiene el color del contorno.
Valor devuelto
Estructura anterior COLORREF
que contiene el color del contorno
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_SETOUTLINECOLOR
, tal como se describe en Windows SDK.
CListCtrl::SetSelectedColumn
Establece la columna seleccionada del control de vista de lista.
LRESULT SetSelectedColumn(int iCol);
Parámetros
iCol
Índice de la columna que se va a seleccionar.
Valor devuelto
No se usa el valor devuelto.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_SETSELECTEDCOLUMN
, tal como se describe en Windows SDK.
CListCtrl::SetSelectionMark
Establece la marca de selección de un control de vista de lista.
int SetSelectionMark(int iIndex);
Parámetros
iIndex
Índice de base cero del primer elemento de una selección múltiple.
Valor devuelto
Marca de selección anterior o -1 si no había ninguna marca de selección.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_SetSelectionMark
, tal y como se describe en Windows SDK.
Ejemplo
Vea el ejemplo de CListCtrl::GetSelectionMark
.
CListCtrl::SetTextBkColor
Establece el color de fondo del texto en un control de vista de lista.
BOOL SetTextBkColor(COLORREF cr);
Parámetros
cr
COLORREF
que especifica el nuevo color de fondo del texto. Para obtener información, consulte COLORREF
en Windows SDK.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Ejemplo
// Use the 3D button face color for the background.
COLORREF crBkColor = ::GetSysColor(COLOR_3DFACE);
m_myListCtrl.SetTextBkColor(crBkColor);
ASSERT(m_myListCtrl.GetTextBkColor() == crBkColor);
CListCtrl::SetTextColor
Establece el color de texto de un control de vista de lista.
BOOL SetTextColor(COLORREF cr);
Parámetros
cr
COLORREF
que especifica el nuevo color del texto. Para obtener información, consulte COLORREF
en Windows SDK.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Ejemplo
// Use the window text color for
// the item text of the list view control.
COLORREF crTextColor = ::GetSysColor(COLOR_WINDOWTEXT);
m_myListCtrl.SetTextColor(crTextColor);
ASSERT(m_myListCtrl.GetTextColor() == crTextColor);
CListCtrl::SetTileInfo
Establece la información de un mosaico del control de vista de lista.
BOOL SetTileInfo(PLVTILEINFO pTileInfo);
Parámetros
pTileInfo
Puntero que apunta a una estructura LVTILEINFO
que contiene la información que se va a establecer.
Valor devuelto
Devuelve TRUE
si la operación se realiza correctamente; de lo contrario, devuelve FALSE
.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_SETTILEINFO
, tal como se describe en Windows SDK.
CListCtrl::SetTileViewInfo
Establece la información que usa un control de vista de lista en la vista de mosaico.
BOOL SetTileViewInfo(PLVTILEVIEWINFO ptvi);
Parámetros
ptvi
Puntero que apunta a una estructura LVTILEVIEWINFO
que contiene la información que se va a establecer.
Valor devuelto
Devuelve TRUE
si la operación se realiza correctamente; de lo contrario, devuelve FALSE
.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_SETTILEVIEWINFO
, tal como se describe en Windows SDK.
CListCtrl::SetToolTips
Establece el control de la información sobre herramientas que usará el control de vista de lista para mostrar información sobre herramientas.
CToolTipCtrl* SetToolTips(CToolTipCtrl* pWndTip);
Parámetros
pWndTip
Puntero que apunta a un objeto CToolTipCtrl
que usará el control de lista.
Valor devuelto
Puntero que apunta a un objeto CToolTipCtrl
que contiene la información sobre herramientas usada anteriormente por el control o NULL
si no se usó anteriormente ninguna información sobre herramientas.
Comentarios
En esta función miembro, se implementa el comportamiento del mensaje LVM_SETTOOLTIPS
de Win32, tal y como se describe en Windows SDK.
Para no usar información sobre herramientas, indique el estilo LVS_NOTOOLTIPS
al crear el objeto CListCtrl
.
CListCtrl::SetView
Establece la vista del control de vista de lista.
DWORD SetView(int iView);
Parámetros
iView
Vista que se va a seleccionar.
Valor devuelto
Devuelve 1 si se realiza correctamente o -1 en caso contrario. Por ejemplo, se devuelve -1 si la vista no es válida.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_SETVIEW
, tal como se describe en Windows SDK.
CListCtrl::SetWorkAreas
Establece el área donde se pueden mostrar los iconos en un control de vista de lista.
void SetWorkAreas(
int nWorkAreas,
LPRECT lpRect);
Parámetros
nWorkAreas
Número de estructuras RECT
(u objetos CRect
) de la matriz a la que apunta lpRect
.
lpRect
Dirección de una matriz de estructuras RECT
(u objetos CRect
) que especifican las nuevas áreas de trabajo del control de vista de lista. Estas áreas deben especificarse en coordenadas cliente. Si este parámetro es NULL
, el área de trabajo se establecerá en el área cliente del control.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_SetWorkAreas
, tal y como se describe en Windows SDK.
Ejemplo
// Remove all working areas.
m_myListCtrl.SetWorkAreas(0, NULL);
CListCtrl::SortGroups
Usa una función de comparación definida por la aplicación para ordenar grupos por identificador en un control de vista de lista.
BOOL SortGroups(
PFNLVGROUPCOMPARE _pfnGroupCompare,
LPVOID _plv);
Parámetros
_pfnGroupCompare
Puntero que apunta a la función de comparación de grupos.
_plv
Puntero void.
Valor devuelto
Devuelve TRUE
si la operación se realiza correctamente; de lo contrario, devuelve FALSE
.
Comentarios
Esta función miembro se usa para emular la funcionalidad del mensaje LVM_SORTGROUPS
, tal como se describe en Windows SDK.
CListCtrl::SortItems
Ordena los elementos de vista de lista mediante una función de comparación definida por la aplicación.
BOOL SortItems(
PFNLVCOMPARE pfnCompare,
DWORD_PTR dwData);
Parámetros
pfnCompare
[entrada] Dirección de la función de comparación definida por la aplicación.
La operación de ordenación llama a la función de comparación cada vez que es necesario determinar el orden relativo de dos elementos de lista. La función de comparación debe ser un miembro estático de una clase o una función independiente que no sea miembro de ninguna clase.
dwData
[entrada] Valor definido por la aplicación que se pasa a la función de comparación.
Valor devuelto
TRUE
si el método se ha realizado correctamente; de lo contrario, FALSE
.
Comentarios
Este método cambia el índice de cada elemento para reflejar la nueva secuencia.
La función de comparación, pfnCompare
, tiene la siguiente forma:
int CALLBACK CompareFunc(LPARAM lParam1,
LPARAM lParam2,
LPARAM lParamSort);
La función de comparación debe devolver un valor negativo si el primer elemento debe preceder al segundo, un valor positivo si el primer elemento debe seguir el segundo o cero si los dos elementos son iguales.
El parámetro lParam1
es el valor de 32 bits (64 bits si va a compilar para x64) asociado al primer elemento que se compara y el parámetro lParam2
es el valor asociado al segundo elemento. Estos son los valores que se especificaron en el miembro lParam
de la estructura LVITEM
de los elementos cuando se insertaron en la lista. El parámetro lParamSort
es el mismo que el valor dwData
.
Al usar este método, se envía el mensaje LVM_SORTITEMS
, que se describe en Windows SDK.
Ejemplo
A continuación, se muestra una función de comparación simple que da como resultado que los elementos se ordenen por sus valores lParam
.
// Sort items by associated lParam
int CALLBACK CListCtrlDlg::MyCompareProc(LPARAM lParam1, LPARAM lParam2,
LPARAM lParamSort)
{
UNREFERENCED_PARAMETER(lParamSort);
return (int)(lParam1 - lParam2);
}
// Sort the items by passing in the comparison function.
void CListCtrlDlg::Sort()
{
m_myListCtrl.SortItems(&CListCtrlDlg::MyCompareProc, 0);
}
CListCtrl::SortItemsEx
Ordena los elementos del control de vista de lista actual mediante una función de comparación definida por la aplicación.
BOOL SortItemsEx(
PFNLVCOMPARE pfnCompare,
DWORD_PTR dwData);
Parámetros
pfnCompare
[entrada] Dirección de la función de comparación definida por la aplicación. La operación de ordenación llama a la función de comparación cada vez que es necesario determinar el orden relativo de dos elementos de lista. La función de comparación debe ser un miembro estático de una clase o una función independiente que no sea miembro de ninguna clase.
dwData
[entrada] Valor definido por la aplicación que se pasa a la función de comparación.
Valor devuelto
TRUE
si este método es correcto; en caso contrario, FALSE
.
Comentarios
Este método cambia el índice de cada elemento para reflejar la nueva secuencia.
La función de comparación, pfnCompare
, tiene la siguiente forma:
int CALLBACK CompareFunc(LPARAM lParam1,
LPARAM lParam2,
LPARAM lParamSort);
Este mensaje es similar a LVM_SORTITEMS
, excepto el tipo de información que se pasa a la función de comparación. En LVM_SORTITEMS
, lParam1
y lParam2
son los valores de los elementos que se van a comparar. En LVM_SORTITEMSEX
, lParam1
es el índice actual del primer elemento que se va a comparar y lParam2
es el índice actual del segundo elemento. Puede enviar un mensaje LVM_GETITEMTEXT
para recuperar más información sobre un elemento.
La función de comparación debe devolver un valor negativo si el primer elemento debe preceder al segundo, un valor positivo si el primer elemento debe seguir el segundo o cero si los dos elementos son iguales.
Nota:
Durante el proceso de ordenación, el contenido de la vista de lista es inestable. Si la función de devolución de llamada envía mensajes al control de vista de lista distintos de LVM_GETITEM
, los resultados son impredecibles.
Al usar este método, se envía el mensaje LVM_SORTITEMSEX
, que se describe en Windows SDK.
Ejemplo
En el primer ejemplo de código se define una variable, m_listCtrl
, que se usa para acceder al control de vista de lista actual. Esta variable se utiliza en el siguiente ejemplo.
public:
// Variable used to access the list control.
CListCtrl m_listCtrl;
En el siguiente código de ejemplo se muestra el método SortItemEx
. En una sección anterior de este ejemplo de código, creamos un control de vista de lista que muestra dos columnas tituladas "ClientID" y "Grade" en una vista de informe. En el ejemplo de código siguiente, se ordena la tabla mediante los valores de la columna "Grade".
// The ListCompareFunc() method is a global function used by SortItemEx().
int CALLBACK ListCompareFunc(
LPARAM lParam1,
LPARAM lParam2,
LPARAM lParamSort)
{
CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
CString strItem1 = pListCtrl->GetItemText(static_cast<int>(lParam1), 1);
CString strItem2 = pListCtrl->GetItemText(static_cast<int>(lParam2), 1)
int x1 = _tstoi(strItem1.GetBuffer());
int x2 = _tstoi(strItem2.GetBuffer());
int result = 0;
if ((x1 - x2) < 0)
result = -1;
else if ((x1 - x2) == 0)
result = 0;
else
result = 1;
return result;
}
void CCListCtrl_s2Dlg::OnBnClickedButton1()
{
// SortItemsEx
m_listCtrl.SortItemsEx( ListCompareFunc, (LPARAM)&m_listCtrl );
}
CListCtrl::SubItemHitTest
Determina qué elemento de vista de lista, si existe, está en una posición determinada.
int SubItemHitTest(LPLVHITTESTINFO pInfo);
Parámetros
pInfo
Un puntero a la estructura LVHITTESTINFO
.
Valor devuelto
Índice basado en uno del elemento o subelemento, que se va a probar (si existe), o -1 de lo contrario.
Comentarios
En esta función miembro, se implementa el comportamiento de la macro de Win32, ListView_SubItemHitTest
, tal y como se describe en Windows SDK.
Ejemplo
void CListCtrlDlg::OnDblClk(NMHDR* pNMHDR, LRESULT* pResult)
{
UNREFERENCED_PARAMETER(pResult);
LPNMITEMACTIVATE pia = (LPNMITEMACTIVATE)pNMHDR;
LVHITTESTINFO lvhti;
// Clear the subitem text the user clicked on.
lvhti.pt = pia->ptAction;
m_myListCtrl.SubItemHitTest(&lvhti);
if (lvhti.flags & LVHT_ONITEMLABEL)
{
m_myListCtrl.SetItemText(lvhti.iItem, lvhti.iSubItem, NULL);
}
}
CListCtrl::Update
Obliga al control de vista de lista a volver a pintar el elemento especificado por nItem
.
BOOL Update(int nItem);
Parámetros
nItem
Índice del elemento que se va a actualizar.
Valor devuelto
Es distinto de cero si es correcto. En caso contrario, es cero.
Comentarios
Esta función también organiza el control de vista de lista si tiene el estilo LVS_AUTOARRANGE
.
Ejemplo
Vea el ejemplo de CListCtrl::GetSelectedCount
.
Consulte también
MFC Sample ROWLIST
CWnd
(clase)
Gráfico de jerarquías
CImageList
(clase)