CListCtrl::MapIndexToID

Ordnet den Index eines Elements im aktuellen Listenansicht-Steuerelement auf eine eindeutige ID zu

UINT MapIndexToID(
     UINT index
) const;

Parameter

Parameter

Beschreibung

[in] index

Der nullbasierte Index eines Elements.

Rückgabewert

Eine eindeutige ID für das angegebene Element.

Hinweise

Ein Listenansicht-Steuerelement intern verfolgt Elemente nach Index.Dies kann Probleme darstellen, da Indizes während der Lebensdauer des Steuerelements ändern können.Das Listenansicht-Steuerelement kann ein Element mit einer ID kennzeichnen, wenn das Element erstellt wird.Sie können diese ID verwenden, um auf ein bestimmtes Element während der Lebensdauer des Listenansicht-Steuerelements zuzugreifen.

Beachten Sie das in einer Multithreadumgebung, die, der Index nur in dem Thread, der das ListView-Steuerelement gehostet werden, nicht auf Hintergrundthreads garantiert ist.

Diese Methode sendet die LVM_MAPINDEXTOID Meldung, die im Windows SDK beschrieben wird.

Anforderungen

Header: afxcmn.h

Dieses Steuerelement wird in Windows Vista und höher unterstützt.

Zusätzliche Anforderungen für diese Methode werden in Build-Anforderungen für Windows Vista-gemeinsame Regelungen beschrieben.

Beispiel

Im folgenden Codebeispiel wird eine Variable, m_listCtrl, die verwendet wird, um auf das aktuelle Listenansicht-Steuerelement zuzugreifen.Diese Variable wird im folgenden Beispiel verwendet.

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

Im folgenden Codebeispiel wird die MapIndexToID-Methode veranschaulicht.In einem früheren Abschnitt dieses Codebeispiels erstellt haben, wird ein ListView-Steuerelement, das Anzeigen zwei Spalten "ClientID" und "Grad" in einer Berichtsansicht Titel.Im folgenden Beispiel wird der Index jedes Listenansichtelements zu einer ID zu und ruft dann den Index für jede ID ab.Schließlich meldet das Beispiel, ob die ursprünglichen Indizes abgerufen wurden.

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

Siehe auch

Referenz

CListCtrl-Klasse

Hierarchien-Diagramm

LVM_MAPINDEXTOID

CListCtrl::MapIDToIndex