Winapi 树状视图--在末尾插入要比在开头插入慢,但删除要快?

Winapi 树状视图--在末尾插入要比在开头插入慢,但删除要快?,winapi,treeview,Winapi,Treeview,我很震惊地发现,先用TVI_插入a要比上次用TVI_快得多 相比之下,删除速度较慢——我的程序在使用时退出的速度要慢得多 这是为什么 用以下内容括起您的代码: SendMessagehWnd,WM_SETREDRAW,FALSE,0 /////// sendmageshwnd,WM_SETREDRAW,TRUE,0 重新绘制的速度很慢。有趣的是,这种行为在。我很好奇你有多少节点?显然,对于TVI_,LAST is必须在该级别遍历所有节点,但这似乎并不特别昂贵……对于大小合理的TreeView来

我很震惊地发现,先用TVI_插入a要比上次用TVI_快得多

相比之下,删除速度较慢——我的程序在使用时退出的速度要慢得多


这是为什么

用以下内容括起您的代码:

SendMessagehWnd,WM_SETREDRAW,FALSE,0

///////

sendmageshwnd,WM_SETREDRAW,TRUE,0


重新绘制的速度很慢。

有趣的是,这种行为在。我很好奇你有多少节点?显然,对于TVI_,LAST is必须在该级别遍历所有节点,但这似乎并不特别昂贵……对于大小合理的TreeView来说并不昂贵。当人们开始创建包含100000个子节点的节点时,问题就出现了。@Luke:文档中的这部分内容以前不在那里-它不在我的本地版本VS 2008中!另外,没有提到删除,这是非常奇怪的部分…@RaymondChen:实际上,我只插入了28298个节点,而差异仍然是可笑的可见…哦,只有28298个。是的,那几乎没什么你能用更多的细节来扩展你的答案吗?我不确定我能。你想知道什么?您可以轻松地查找WM_SETREDRAW的文档或其他在线讨论。基本上,你是在告诉Windows我要做不止一件事,所以不要费心在每件事之后都重画。我在复习你的答案。请将详细信息添加到您的答案中并编辑它。