Form Events and Capabilities VB6
Microsoft VB .NET has a form_move event, but Visual BASIC 6 does not.
The Paint event won't detect a window being moved off the screen, but will get triggered when the window is moved back onto the screen.
GotFocus/LostFocus Events are not triggered by the form.
Your options are:
Subclassing using WM_WINDOWPOSCHANGED
Subclassing can make the Visual Studio IDE unstable. The debugger does not work well when a new WindowProc is installed.
EventVB.dll Custom Functions
First add the EventVB.dll to your project references. It is not included with Visual Studio.
Option Explicit
Dim WithEvents vbLink As EventVB.APIFunctions
Dim WithEvents vbWnd As EventVB.ApiWindow
Private Sub Form_Load()
Set vbLink = New APIFunctions
Set vbWnd = New ApiWindow
vbWnd.hWnd = Me.hWnd
'\\ Subclass this form
vbLink.SubclassedWindows.Add vbWnd
End Sub
Private Sub vbWnd_Move(ByVal x As Long, ByVal y As Long, Cancel As Boolean)
'\\ This event occurs when a drag-move completes:
Debug.Print "Moved to " & x & "," & y
End Sub
Private Sub vbWnd_Moving(ByVal MoveEdges As EventVB.WindowSizingEdges, MoveRectangle As EventVB.APIRect)
'\\ This event occurs during the drag-move
With MoveRectangle
Debug.Print "Moving to " & .Left & "," & .Top & " - " & .Right & "," & .Bottom
End With
End Sub