我不得不修复一些旧的VB6代码,其中一个问题是应用程序在启动时将18k项加载到3个不同的Combo Dropdown中。不用说,这需要很长时间。所以我从使用.AddItem方法改为使用SendMessage API。这大大缩短了时间(减少了60%左右),但每次下拉仍然需要1.4秒才能加载,因此启动仍然是5秒。
我还试图说服用户没有全部18k,但他们坚持所有条目都必须在那里快速查找。
我的问题......
答案 0 :(得分:1)
我想你已经使用CB_ADDSTRING(而不是CB_INSERTSTRING)
下一项我建议您使用:CB_INITSTORAGE
检查组合框是否设置了CBS_SORT
在人口中 - 隐藏这些盒子,它可以加快一点点
最后 - 将这些组合框的数量作为3个单独的线程
答案 1 :(得分:1)
在加载过程中将SetRedraw设置为false可以节省大量时间。