有没有更快的方法将18k项加载到Combo Dropdown中?

时间:2013-12-27 18:29:35

标签: vb6

我不得不修复一些旧的VB6代码,其中一个问题是应用程序在启动时将18k项加载到3个不同的Combo Dropdown中。不用说,这需要很长时间。所以我从使用.AddItem方法改为使用SendMessage API。这大大缩短了时间(减少了60%左右),但每次下拉仍然需要1.4秒才能加载,因此启动仍然是5秒。

我还试图说服用户没有全部18k,但他们坚持所有条目都必须在那里快速查找。

我的问题......

  1. 是否有更快的方式加载那么多项?
  2. 无论如何只是为了在3个组合框之间共享数据,而不是每个都要加18k?
  3. 我可能忽略的任何其他解决方案。

2 个答案:

答案 0 :(得分:1)

我想你已经使用CB_ADDSTRING(而不是CB_INSERTSTRING)

下一项我建议您使用:CB_INITSTORAGE

检查组合框是否设置了CBS_SORT

在人口中 - 隐藏这些盒子,它可以加快一点点

最后 - 将这些组合框的数量作为3个单独的线程

答案 1 :(得分:1)

在加载过程中将SetRedraw设置为false可以节省大量时间。