Поделиться через


CListCtrl::MapIndexToID

Сопоставляет индекс элемента в текущем элементе управления "список" с уникальным идентификатором.

UINT MapIndexToID(
     UINT index
) const;

Параметры

Параметр

Описание

[входящий] index

Индекс, начинающийся с нуля элемента.

Возвращаемое значение

Уникальный идентификатор для указанного элемента.

Заметки

Элемент управления "список" внутренне отслеживает элементы индексу. Это может привести к проблемам, поскольку индексы могут изменяться во время существования элемента управления. Элемент управления "список" может маркировки элемент с идентификатором, когда элемент создан. Можно использовать этот идентификатор для доступа к определенному элементу в течение времени существования управления "список".

Обратите внимание, что в многопоточной среде индекс гарантируется только в потоке, размещение элементе управления списка, а не на фоне потоке.

Этот метод отправляет сообщение LVM_MAPINDEXTOID, которое описано в Windows SDK.

Требования

заголовок: afxcmn.h

Этот элемент управления поддерживается в Windows Vista и более поздних версиях.

Дополнительные требования для этого метода см. в Требования к сборке для использования стандартных элементов управления в Windows Vista.

Пример

В следующем примере кода определяется переменной m_listCtrl, которая используется для доступа к текущий элемент управления "список". Эта переменная используется в следующем примере.

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

В следующем примере кода демонстрируется применение метода MapIndexToID. В предыдущем шаге этого примера кода, мы создали элементе управления списка, выводится 2 столбцов озаглавили "ClientID" и "ранг" в представлении отчета. Следующий пример сопоставляет индекс каждого элемента списка в идентификационному номеру, а затем извлекает индекс для каждого номера идентификатора. Наконец, пример сообщает были ли восстановлены исходные индексы.

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