Проблема следующая: вставка в TreeView в одну ветку большого количества элементов происходит очень долго. Использование SetRedraw(FALSE) SetRedraw(TRUE) и мало помогает. Однако Explorer открывает каталог в котором находиться 100 000 файлов очень быстро — в течении 1 секунды, тогда как код
for(int i=0; i<100000; i++)
{
tree.InsertItem(_T("Test"), 0, 0, hParent, hInsertAfter);
}
выполняется секунд 10, причем, время вставки каждого нового элемента больше, предыдущего.
На codeproject есть статья на эту тему
http://www.codeproject.com/treectrl/rgtree.asp. Но там контрол не поддерживает очень многих функций стандартного treeview.
Вопрос заключается в том, как же делает это MS, что у него выходит все так быстро.