In questo esempio se premo su command1 disegno un quadrato del lato di 50 pixels (sullo schermo) nella posizione (0, 0)
per cancellarlo premi su command2 che esegue un refresh dello schermo.
il refresh è eseguito dalla funzione Invalidate rect alla qualle passo come argomento il device context(che è quello dello schermo cioè zero, il rettangolo di cui fare il refresh che ha come coord (0,0) e la lraghezza e l'altezza del mio schermo (ma tu usi quella del tuo), l'ultimo argomento lascialo invece a true.
a te lunica funz che interessa è invalidaterect, il resto te lh' messo solo come esempio.
Private Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Sub Command1_Click()
Dim dc As Long
dc = GetDC(0)
Rectangle dc, 0, 0, 50, 50
End Sub
Private Sub Command2_Click()
Dim rc As RECT
rc.Left = 0
rc.Top = 0
rc.Bottom = 768-1
rc.Right = 1024-1
InvalidateRect 0, rc, True
End Sub

Rispondi quotando