我正在使用列表控件来显示向量中元素的表示.单击列表时,另一个控件显示有关该元素的信息.元素的索引当前由其在控件中的索引确定,但是如果我希望对结果进行排序或过滤,则这将不再起作用.
有人告诉我,我可以使用虚拟列表控件,但MSDN不是很友好,有人可以告诉我如何使用虚拟列表控件吗?
坦率地说 - 将数据(数据向量中的位置)绑定到列表控件中的数据表示(列表控件中的位置)是我不想做的事情.
在MFC中,每个控件都有一个"数据"DWORD成员变量 - 当在MFC中编码时我总是为每个项添加并调用相关行所引用的指针的"SetItemData".
YourListCtrl.SetItemData((DWORDPTR)&YourData);
然后,当选择ListCtrl项时,您只需调用
DataTypeYouWant* pData = (DataTypeYouWant*)(YourListCtrl.GetItemData(indexofselecteditem));
或者某些事情.
或者 - 如果您不想使用指针 - 在行的itemdata中保存原始向量中项目的索引(只需将其传递给上面的fns).