This sample shows how to force an area of a window to repaint. Sometimes this is
necessary, particularly when you're experimenting with owner draw control techniques,
or when using the LockWindowUpdate API call to improve the speed at which a control
fills with data.
Create a new project, add a module and paste in the code below:
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Type POINTAPI
    X As Long
    Y As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function GetClientRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function InvalidateRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal hWnd As Long, lpPoint As POINTAPI) As Long
Public Sub RepaintWindow( _
        ByRef objThis As Object, _
        Optional ByVal bClientAreaOnly As Boolean = True _
    )
Dim tR As RECT
Dim tP As POINTAPI
    If (bClientAreaOnly) Then
        GetClientRect objThis.hWnd, tR
    Else
        GetWindowRect objThis.hWnd, tR
        tP.X = tR.Left: tP.Y = tR.Top
        ScreenToClient objThis.hWnd, tP
        tR.Left = tP.X: tR.Top = tP.Y
        tP.X = tR.Right: tP.Y = tR.Bottom
        ScreenToClient objThis.hWnd, tP
        tR.Right = tP.X: tR.Bottom = tP.Y
    End If
    InvalidateRect objThis.hWnd, tR, 1
   
End Sub
       
To try out the redrawing, add a ListBox and a Command button to your Project's form.
Make the ListBox as big as possible so you will see the effect. Then add the following
code:
Private Sub Command1_Click()
    RepaintWindow List1
End Sub
Private Sub Form_Load()
Dim i As Long
    For i = 1 To 200
        List1.AddItem "TestItem " & i
    Next i
End Sub
When you click on the button, the client area of the List Box will be entirely redrawn.
The effect is not particularly noticeable with the List Box as shown, but basically this
tip is here to get you around any problems you have when things don't redraw
themselves properly.