CListCtrl::MapIndexToID

映射一个项的索引在当前列表视图控件的设置为唯一ID.

UINT MapIndexToID(
     UINT index
) const;

参数

Parameter

说明

[in] index

项目的从零开始的索引。

返回值

指定项目的唯一ID。

备注

内部列表视图控件按索引跟踪项目。 在控件的生存期内,,因为索引会更改这可能会出现问题。 在创建项目时,列表视图控件可以标记与id(-4)的项目。 可以使用此ID访问特定项目为列表视图控件的生存期。

监视索引在线程仅确保承载列表视图控件,不在后台播放一个多线程环境线程。

此方法发送 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”和“层”在"报告"视图中的列表视图控件。 下面的示例将每个列表视图项索引来标识号,然后检索每个标识号的索引。 最后,该示例报告原始索引是否检索到的。

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