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