Share via


CListCtrl::MapIndexToID

asigna el índice de un elemento en el control actual de la vista de lista a una identificación única

UINT MapIndexToID(
     UINT index
) const;

Parámetros

Parámetro

Descripción

[in] index

El índice cero-basado de un elemento.

Valor devuelto

Un identificador único para el elemento especificado.

Comentarios

Un control de vista de lista internamente sigue elementos mediante el índice.Esto puede mostrar problemas porque los índices pueden cambiar durante la duración del control.El control de la lista-vista puede etiquetar un elemento con un id. cuando se crea el elemento.Puede utilizar este id. para obtener acceso a un elemento específico para la duración del control de la lista- vista.

Observe que en un entorno multiproceso que el índice sólo se garantiza en el subproceso que hospeda el control de vista de lista, no en subprocesos de fondo.

Este método envía el mensaje de LVM_MAPINDEXTOID , que se describe en Windows SDK.

Requisitos

encabezado: afxcmn.h

Este control se admite en Windows Vista y posterior.

los requisitos adicionales para este método se describen en Requisitos de la compilación para Controles comunes de Windows Vista.

Ejemplo

El ejemplo de código siguiente define una variable, m_listCtrl, que se utiliza para tener acceso al control actual de la vista de lista.esta variable se utiliza en el ejemplo siguiente.

public:
    // Variable used to access the list control.
    CListCtrl m_listCtrl; 

En el ejemplo de código siguiente se muestra el método MapIndexToID.En una sección anterior de este ejemplo de código, creamos un control listview que muestra dos columnas titularon “ClientID” y “grado” en una vista de informe.El ejemplo siguiente se asigna el índice de cada elemento de la vista de lista en un número de identificación, y después recupera el índice para cada identificador.Finalmente, el ejemplo indica si los índices originales se recuperan.

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

Vea también

Referencia

Clase de CListCtrl

Gráfico de jerarquía

LVM_MAPINDEXTOID

CListCtrl::MapIDToIndex