Невыносимо долгий процесс очистки ListView

Тема в разделе "WASM.BEGINNERS", создана пользователем Dlr, 4 май 2007.

  1. Dlr

    Dlr New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    9
    Суть проблемы:

    Имеется программка, которая в ходе своей работы заполняет предусмотренный в ней ListView контрол некоторым количеством итемов (чуть более 4000, только текст). Проблема возникает в тот момент, когда необходимо очистить этот самый ListView и заключается в том, что процесс очистки (отсылкой LV_DELETEALLITEMS) под Win95/98 длится невыносимо долго (20-30 секунд), причем под XP на той же машине все осуществляется, как и положено, моментально. Если вместо этого тупо убивать заполненый список и на его месте создавать новый чистый ListWiev, обработка DestroyWindow занимает примерно столько же много времени. И еще: такие тормоза начинаются когда количество итемов переваливает примерно за 2000.

    Почему под Win95/98 удаление не такого уж большого количества итемов занимает столь много времени?

    Есть ли альтернативные способы моментальной очистки ListView под указанными ОС?

    Заранее благодарен.
     
  2. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    делай listview виртуальным
     
  3. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    К слову: TreeView страдает тем же (на ХР проверялось) - если много (у меня было ~10,000) корневых элементов.
     
  4. Dlr

    Dlr New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    9
    А виртуальный LV действительно помог. Спасибо!