ProgressBar1.Min = 0                '最小值
   ProgressBar1.Max = rst.RecordCount  '最大值(应该根据你循环内容确定)
   ProgressBar1.Value = ProgressBar1.Min
   ProgressBar1.Visible = True
   Do While Not rst.EOF            
      …………
       ProgressBar1.Value = ProgressBar1.Value + 1
   Loop

解决方案 »

  1.   

    1)vc的dll使用peekmessage,实现效果类似vb的doevents
    2)试试在vb的程序里使用doevents
    3)使用线程控制界面。
      

  2.   

    如果你是调用一个函数,然后反映其进度变化,确实不能按你说的那样实现。进度条写在DDL中理论上可以,不过事实上会破坏DLL存在的意义。关注中......
      

  3.   

    实现真实的进度情况:
    1)在Dll入口参数中加入进度条的Hwnd,在Dll中处理时把SendMessage函数把完成的进度比率发送到Hwnd对应的句柄中(中间要让Dll中实现PeekMessage,TanslateMessage等函数实现类似Vb中的Doevents功能。)
    2)在Vb中显示进度条的窗体中接收处理由Dll发送来的消息。