다음을 통해 공유


CListCtrl::MapIndexToID

현재 목록 뷰 컨트롤에 있는 항목의 인덱스를 고유 ID로 매핑합니다.

UINT MapIndexToID(
     UINT index
) const;

매개 변수

Parameter

설명

[in] index

항목의 인덱스입니다.

반환 값

지정 된 항목에 대 한 고유 ID입니다.

설명

목록 뷰 컨트롤 내부 인덱스에서 항목을 추적합니다. 인덱스는 컨트롤의 수명 동안 변경 될 수 있으므로이 문제가 발생할 수 있습니다. 항목을 만들 때 목록 뷰 컨트롤 항목 id 태그를 수 있습니다. 이 ID 목록 뷰 컨트롤의 수명에 대 한 특정 항목을 액세스할 수 있습니다.

다중 스레드 환경에서 인덱스에 백그라운드 스레드 목록 뷰 컨트롤을 호스팅하는 스레드에서 보장 하는 note입니다.

보내는이 메서드는 LVM_MAPINDEXTOID 에서 설명 하는 메시지는 Windows SDK.

요구 사항

헤더: afxcmn.h

이 컨트롤에서 지 Windows Vista 이상.

이 메서드에 대 한 추가 요구 사항에서 설명 Windows Vista 공용 컨트롤의 빌드 요구 사항.

예제

다음 코드 예제에서는 변수 정의 m_listCtrl, 즉 현재 목록 뷰 컨트롤에 액세스 하는 데 사용 합니다. 이 변수는 다음 예제에 사용 됩니다.

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

다음 코드 예제에서는 MapIndexToID 메서드를 사용하는 방법을 보여 줍니다. 이 코드 예제는 이전 단원에서 "등급" 및 "ClientID" 보고서 뷰에서 이라는 두 개의 열을 표시 하는 목록 뷰 컨트롤을 만들. 다음 예제에서는 각 목록 보기 항목의 인덱스 번호를 매핑합니다 및 다음 각 id에 대 한 인덱스를 검색 합니다. 마지막으로 예제에서는 원래 인덱스 검색 여부를 보고 합니다.

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

참고 항목

참조

CListCtrl 클래스

계층 구조 차트

LVM_MAPINDEXTOID

CListCtrl::MapIDToIndex