我用ado, 一次性将所有记录查询到记录集, 然后使用 ClistCtrl的LVN_GETDISPINFO 方法//
1. 得到列表顶部的索引号= 开始编号
2. 得到列表个显示得数量= 结束编号
3. 将数据库中的记录, 从 开始编号 到 结束编号 , 读取到内存变量中4. 填充 LVN_GETDISPINFO 请求的数据变量
//
这样, 内存占用比较少, 但是垂直拖动滚动条的时候, 最底部的几条记录显示有些不完整, 刷新一下就好了,  但是问题视CPU耗用比较大, %45左右, 而ACCESS 只用了`15%左右,  为什么???

解决方案 »

  1.   

    我把记录集的数据填充到内存变量的方法是:move(m_topIndex, 1); //绝对位置到 m_topIndex然后后面的全部使用movenext, 应该没有问题吧 ??我没有使用数据绑定? 会不会是这个原因呢 ?
      

  2.   

    考虑一下用 虚模式, 每次只读一部分数据到 LIST 中
      

  3.   

    huwei001982(編程浪子) :
    我用了虚拟模式, 就是 LVN_GETDISPINFO 这个消息的映射函数
      

  4.   

    krh2001(边城浪子) :
    我没有全部填充, 我只填充可见区域的记录数量啊