One way to speed list-box loading is to eliminate the constant redrawing
required while loading. You can do this by calling the LockWindowUpdate
API. LockWindowUpdate accepts an HWND as a parameter to start the lock
and a zero parameter to unlock it. Only one window can be locked at a time.
If LockWIndowUpdate is called with another HWND, the currently locked window
will be unlocked.
To run this sample, put a command button and a list box on a form and
paste in this code. Your code may not require the DoEvents within the loop
that adds items, and a tight basic loop will keep the list from updating.
However, there are times when the DoEvents is required.
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Private Sub Command1_Click()
Dim i%
LockWindowUpdate (List1.hWnd)
For i% = 1 To 1000
List1.AddItem Str$(i%)
DoEvents
Next
LockWindowUpdate (0&)
End Sub