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