CListBox::GetItemDataPtr 是 MFC 中 CListBox 类的一个公共方法,用于获取与指定列表框项相关联的指针类型的应用程序数据。

具体语法如下:
void* GetItemDataPtr(int nIndex) const;

参数说明:
  •  nIndex: 要查询的列表框项的索引。


返回值:
  •  返回与列表框项相关联的指针类型的应用程序数据。如果 nIndex 无效,返回值为 nullptr。


示例代码如下:
CListBox listBox;
listBox.Create(WS_VISIBLE | WS_CHILD | LBS_STANDARD, CRect(10, 10, 200, 200), pParentWnd, IDC_LISTBOX);

// 向列表框中添加一些项并关联指针类型数据
listBox.AddString(_T("Item 1"));
listBox.AddString(_T("Item 2"));
listBox.AddString(_T("Item 3"));

// 关联指针类型数据
CString* pData1 = new CString(_T("Data for Item 1"));
CString* pData2 = new CString(_T("Data for Item 2"));
CString* pData3 = new CString(_T("Data for Item 3"));

listBox.SetItemDataPtr(0, pData1);
listBox.SetItemDataPtr(1, pData2);
listBox.SetItemDataPtr(2, pData3);

// 获取第二项的关联指针类型数据
CString* pData = static_cast<CString*>(listBox.GetItemDataPtr(1));

// 使用pData,然后在不需要时记得释放
delete pData;

在这个例子中,SetItemDataPtr 方法被用于将与列表框中的每一项相关联的指针类型的应用程序数据设置为三个 CString 指针。然后,通过 GetItemDataPtr 方法获取第二项的关联指针类型数据。需要注意在使用完相关数据后释放相应的资源,以避免内存泄漏。


转载请注明出处:http://www.zyzy.cn/article/detail/18476/MFC/CListBox