Partager via


CListCtrl::MapIndexToID

Mappe l'index d'un élément du contrôle liste view actuel à un ID

UINT MapIndexToID(
     UINT index
) const;

Paramètres

Paramètre

Description

[in] index

l'index de base zéro d'un élément.

Valeur de retour

Un identificateur unique pour l'élément spécifié.

Notes

Un contrôle liste view effectue en interne des éléments par index. Cela peut présenter des problèmes parce que les index peuvent changer pendant la durée de vie du contrôle. Le contrôle liste view peut référencer un élément avec un ID lorsque l'élément est créé. Vous pouvez utiliser cet ID pour accéder à un élément spécifique pour la durée de vie du contrôle liste view.

Notez que dans un environnement multithread que l'index est garantie que sur le thread qui héberge le contrôle liste view, pas sur des threads d'arrière-plan.

Cette méthode envoie le message de LVM_MAPINDEXTOID , qui est décrit dans Kit de développement logiciel Windows.

Configuration requise

en-tête : afxcmn.h

Ce contrôle est pris en charge dans Windows Vista et versions ultérieures.

Les spécifications supplémentaires pour cette méthode sont décrites dans Spécifications pour la génération des contrôles communs Windows Vista.

Exemple

L'exemple de code suivant définit une variable, m_listCtrl, qui est utilisée pour accéder au contrôle liste view actuel. Cette variable est utilisée dans l'exemple suivant.

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

L'exemple de code suivant illustre la méthode MapIndexToID. Dans la première section de l'exemple de code, nous avons créé un contrôle liste view que le affiche deux colonnes ont intitulé « ClientID » et « view » dans un mode Rapport. L'exemple suivant mappe l'index de chaque élément de l'affichage de liste à un numéro d'identification, puis récupère l'index pour chaque numéro d'identification. Enfin, l'exemple signale si les index d'origine ont été récupérés.

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

Voir aussi

Référence

CListCtrl, classe

Graphique de la hiérarchie

LVM_MAPINDEXTOID

CListCtrl::MapIDToIndex