Condividi tramite


CListCtrl::MapIndexToID

Esegue il mapping dell'indice di un elemento nel controllo elenco corrente a un ID univoco

UINT MapIndexToID(
     UINT index
) const;

Parametri

Parametro

Descrizione

[in] index

L'indice in base zero di un elemento.

Valore restituito

Un ID univoco dell'elemento specificato.

Note

Un controllo visualizzazione elenco internamente tenere traccia degli elementi tramite l'indice.Questa operazione presenta problemi perché gli indici possono cambiare durante la durata del controllo.Il controllo elenco può contrassegnare un elemento con un ID quando l'elemento verrà creato.È possibile utilizzare questo ID per accedere a un elemento specifico per la durata del controllo visualizzazione elenco.

Si noti che in un ambiente multithreading che l'indice è garantita solo sul thread che ospita il controllo elenco, non sui thread in background.

Questo metodo invia il messaggio LVM_MAPINDEXTOID, come descritto in Windows SDK.

Requisiti

intestazione: afxcmn.h

Questo controllo è supportato in Windows Vista e versioni successive.

i requisiti aggiuntivi per questo metodo sono descritti in Requisiti di compilazione per i controlli comuni di Windows Vista.

Esempio

Nell'esempio di codice definisce una variabile, m_listCtrl, utilizzata per accedere al controllo elenco corrente.Questa variabile viene utilizzata nell'esempio seguente.

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

Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo del metodo MapIndexToID.In una sezione precedente di questo esempio di codice, creato un controllo elenco che visualizza due colonne denominato "ClientID" e "conversione" in una visualizzazione report.Nell'esempio seguente viene eseguito il mapping dell'indice di ogni voce della visualizzazione elenco a un numero di identificazione quindi recupera l'indice di ogni numero di identificazione.Infine, nell'esempio indica se gli indici originali sono stati recuperati.

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

Vedere anche

Riferimenti

Classe di CListCtrl

Grafico della gerarchia

LVM_MAPINDEXTOID

CListCtrl::MapIDToIndex