Pet*_*ter 3 c++ performance winapi mfc
我有一个对话框,里面有几个大的组合框(每个可能有几百个).在建造这些建筑物的过程中有明显的延迟(通过剖析确认它们是正确的).
我最初的想法是排序正在扼杀它的性能,但是禁用排序并使用InsertString似乎并没有让事情变得更好.我没想到这似乎是一个过多的项目 - 我还应该做些什么还是在这里考虑?
MFC调用是Win32消息调用的简单包装器,所以我认为没有任何显着的开销.
DUPLICATE 如何尽可能快地将大量字符串加载到MFC组合框控件中?
Wil*_*ean 10
您应该在添加时使用CWnd :: SetRedraw,以防止控件在每次添加后更新其所有内部状态.
如果你还没有这样做,那么这样做:
combo.SetRedraw(FALSE);
... All the adds
combo.SetRedraw(TRUE);
combo.Invalidate();
Run Code Online (Sandbox Code Playgroud)
您还应该考虑使用CComboBox :: InitStorage函数,该函数为组合框预分配内存.