Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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);