hola podes utilizar InvalidateRect si vos estas utilizando GetDC(0&) entonces no tenes un hwnd para tal caso le pasa 0& como primer parametro esto le indica a la funcion que tiene que dibujar todas las ventanas
Private Declare Function InvalidateRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As Any, ByVal bErase As Long) As Long
Option Explicit
Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function Rectangle Lib "gdi32.dll" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function InvalidateRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As Any, ByVal bErase As Long) As Long
Private Sub Command1_Click()
Dim DC As Long
DC = GetDC(0&)
Rectangle DC, 20, 20, 50, 50
ReleaseDC 0&, DC
End Sub
Private Sub Command2_Click()
InvalidateRect 0&, ByVal 0&, 0&
End Sub
Saludos.