往ListCtrl插入3000个Item,需要2分钟,用listctrl.DeleteAllItem()删除3000个Item要大于2分钟,用while(listctrl.DeleteItem(0))花费更大.
(1)你们是不是也是这样?如果是,如何解决这个问题?
(2)听说有一个虚拟列表之类的东东,谁能介绍一下。

解决方案 »

  1.   

    我试过往ListCtrl中插3000个Item只要5秒就够了,估计是你的循环里面有很费时间的代码。
      

  2.   

    你的机器很慢吧?我加30000个Item才2秒种左右,要不就是你的Column很多?
      

  3.   

    ListCtrl中最多加int的上限条信息,估计你可能每一项有很多个小subItem,不过时间用不了那么多
    同意reallucifer(赤色彗星)的想法!
      

  4.   

    各位大哥,我都没有你们说的情况,我是这样的:在调试状态下,
    ..............////////设置断点1
    listctrl.DeleteAllItem();
    ..............////////设置断点2
    从断点1到断点2需要2分多钟,原来总共有35个Column。
      

  5.   

    CWnd::SetRedraw
    void SetRedraw( BOOL bRedraw = TRUE );在变动listctrl里面的内容之前先
    SetRedraw(FALSE);试试速度是否有提升
      

  6.   

    数据量很大的时候应该使用 OwnerData 属性,使用 virtual list
    速度远远大于直接 InsertItem
      

  7.   

    To:liu_feng_fly(笑看风云 搏击苍穹 衔日月) 差不多。
    To:gboy(hello) ( ) ;我不会用,在对话框里添加列表控件,也能这样吗?