Partilhar via


CListCtrl::MapIndexToID

Mapeia o índice de um item no controle atual de exibição de lista a uma identificação exclusiva

UINT MapIndexToID(
     UINT index
) const;

Parâmetros

Parâmetro

Descrição

[in] index

O índice com base zero de um item.

Valor de retorno

Um ID exclusivo para o item especificado.

Comentários

Um controle de exibição de lista internamente rastreia itens pelo índice.Isso pode enfrentar problemas porque os índices podem alterar durante o ciclo de vida do controle.O controle de list view pode marcar um item com uma identificação quando o item é criado.Você pode usar essa identificação para acessar um item específico para o tempo de vida do controle de exibição de lista.

Observe que em um ambiente de vários segmentos que o índice é garantido somente no segmento que hospeda o controle de list view, não em segmentos de plano de fundo.

Este método envia a mensagem de LVM_MAPINDEXTOID , que é descrita em Windows SDK.

Requisitos

Cabeçalho: afxcmn.h

Esse controle é suportado em Windows Vista e posteriormente.

Os requisitos adicionais para o método são descritos em Criar requisitos de controles comuns do Windows Vista.

Exemplo

O exemplo de código a seguir define uma variável, m_listCtrl, que é usada para acessar o controle atual de exibição de lista.Esta variável é usado no exemplo a seguir.

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

O exemplo de código demonstra o método de MapIndexToID .Em uma seção anterior de este exemplo de código, nós criaremos um controle de exibição de lista que exibe duas colunas intitulassem “ClientID” e “classificar” em um visualizador de relatório.O exemplo a seguir mapeia o índice de cada item de exibição de lista a um número de identificação e em seguida, recupera o índice para cada número de identificação.Finalmente, o exemplo informa se os índices originais foram recuperados.

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

Consulte também

Referência

Classe de CListCtrl

Gráfico de hierarquia

LVM_MAPINDEXTOID

CListCtrl::MapIDToIndex