2010-04-04 7 views
1

dans une grande collection de contrôle listview (disons 5000 articles), l'ajout d'un seul article supplémentaire peut prendre 10+ secondes dans Windows Vista/7, et c'est juste la manipulation LVM_INSERTITEM un messageLVM_INSERTITEM très lent dans Vista/W7

il semble qu'il n'affecte que LVS_ICON, LVS_REPORT et LVS_LIST sont encore très rapide

quelqu'un peut-il confirmer cela?

le même code sur Windows XP avec des styles de fenêtre listview similaires ajoute un élément supplémentaire instantanément

grâce nikos

Répondre

0

Si vous avez que beaucoup de données, envisagez d'utiliser un virtual ListView

+0

Je ne pense pas que cela aidera; Si c'était lié à la mémoire, alors tous les modes d'affichage seraient lents, maintenant c'est seulement une grande vue d'icône (!) – nikos

1

Non repro sur Win7. Ajouter 5000 objets prend une éternité, en ajouter un est rapide. Êtes-vous sûr que ce n'est pas la liste d'images qui est lente?

Diagnostiquez cela en configurant les symboles de débogage Windows et en utilisant Debug + Break All. Consultez la pile d'appels pour un motif. Affichez ce que vous voyez dans votre question si vous avez besoin d'aide pour l'interpréter.

+0

avez-vous essayé la grande vue d'icône? Cela se produit uniquement pour ce mode de distribution, pas pour la liste ou la vue de rapport. J'ai suivi cela jusqu'à la gestion des messages LVM_INSERTITEM. C'est là que tout le retard est. Comment puis-je faire un pas unique dans cette gestion de message, même si j'ai les symboles de débogage de Windows? – nikos

+0

Oui, grande vue d'icône (LVS_ICON). –