Partilhar via


CListCtrl::MapIndexToID

Mapeia o índice de um item no controle de exibição de lista corrente para uma ID exclusiva.

UINT MapIndexToID(
     UINT index
) const;

Parâmetros

Parâmetro

Descrição

[in] index

O índice de um item baseado em zero.

Valor de retorno

Uma ID exclusiva para o item especificado.

Comentários

Um controle de exibição de lista internamente controla itens pelo índice.Isso pode apresentar problemas como índices podem ser alterado durante a tempo de vida do controle.O controle de exibição de lista pode marcar um item com uma ID quando o item é criado.Você pode usar essa ID para acesso um item específico para a vida útil do controle de exibição de lista.

Observe que em um ambiente multithreaded o índice é garantido apenas no thread que hospeda o controle de exibição de lista, não em threads em segundo plano.

Esse método envia o LVM_MAPINDEXTOID mensagem, que é descrita no Windows SDK.

Requisitos

Cabeçalho: afxcmn.h

Este controle é suportado no Windows Vista e mais recente.

Requisitos adicionais para este método são descritos em compilação Requisitos para controles comuns do Windows Vista.

Exemplo

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

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

O exemplo de código a seguir demonstra o MapIndexToID método. Em uma seção anterior deste exemplo de código, criamos um controle de exibição de lista que exibe duas colunas intituladas "ClientID" e "classificação" em um modo de exibição de relatório.O exemplo a seguir mapeia o índice de cada item de exibição de lista para 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 CListCtrl

Gráfico de hierarquia

LVM_MAPINDEXTOID

CListCtrl::MapIDToIndex

Outros recursos

CListCtrl membros