我用CComboBox的AddString了20个字符串(每个字符串都不超过32字符).
结果发现它居然用了100多毫秒(我的机器才刚配的不久,性能绝对没问题),
效率怎么这么低?

解决方案 »

  1.   

    1楼:
    你是怎么计算时间的?
    你像在侮辱我的智商哦,我在AddString操作前::GetTickCount,操作结束后再::GetTickCount,比较差值。2楼:
    晕~~有没高效点的。
    100ms的话还是能感觉出来的,我是要弹出一个对话框,对话框初始化时要AddString操作。
    这样当用户点了按钮后会感到稍有点延时对话框才出来(虽然影响不大,不过有办法改善当然要尽量改)。
      

  2.   

    不会吧,我的ComboBox是DropDownList样式的。
    代码如下:
    DWORD dwStart = ::GetTickCount();
    for(int i = 0; i < 20; i++)
     comboBox.AddString( str ");
    DWORD dwEnd = ::GetTickCount() - dwStart;7楼的你自己写代码测试过?
      

  3.   

    晕菜了,在公司的电脑测时16ms
    干吗我的电脑速度这么慢,电脑才刚买的呀,双核CPU + 2G内存,
    难道有这硬件有猫腻?(但跑游戏都不卡啊)
      

  4.   

    最近我也发现了类似问题。之前循环调用CComboBox AddString一些数据填充只需要10s ms,
    但将UI控件升级到Microsoft.Windows.Common-Controls version='6.0.0.0'
    也就是xp和vista风格的控件后速度就变成500s ms了。加了SetRedraw & InitStorage有50%的改善,但仍然延迟很明显。目前还没找到解决的办法。