Windows 开发界面中listview中插入大量数据,加载缓慢问题
如何实现类似于MFC中virtual list功能,初始时只加载一部分,滚动条滚动时及时加载符合索引范围的item项?
Answers
在用2dx引擎的时候曾经写过类似的东西,换个思路,代码对滚动条进行多一点控制。
int nDdisplayStartIdx_ = 0;
int nMmaxDisplayLines_ = 0;
int nRowsDisplayed_ = 0;
std::vector<DataType> vDatas_; //所有数据
1. 增加垂直滚动条,根据vDatas_的内容大小设定垂直滚动条高度,反映数据量大小;根据窗口高度和item高度设定nMmaxDisplayLines_;
2. 处理垂直滚动条事件,根据垂直滚动条的位置计算当前可显示的nDdisplayStartIdx_。之后调用refreshListViewItems方法更新数据显示。