vb 拖动窗体时如何让另一个窗体也跟着移动,用windows api

vb 拖动窗体时怎么让另一个窗体也跟着移动,用windows api
在vb中怎么实现,拖动一个窗体时,另一个窗体也随之改变。类似于千千静听一样。
注:用windows api实现。
大侠们,帮帮忙。在此先谢过了

------解决方案--------------------
VB code

Option Explicit
Private Const HWND_TOPMOST = -1
Private Const SWP_NOSIZE = &H1
Private Const WM_SYSCOMMAND = &H112&
Private Const SC_MOVE = &HF012&



Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = vbLeftButton Then
        Call ReleaseCapture
        SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MOVE, 0
        Form2.Left = Form1.Left
        Form2.Top = Form1.Top + Form1.Height + 5
    End If
End Sub


Private Sub Form_Load()
    Me.BorderStyle = 0
    Form2.Show
    Form2.BorderStyle = 0
    Form2.Left = Form1.Left
    Form2.Top = Form1.Top + Form1.Height + 5
End Sub

------解决方案--------------------
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function ReleaseCapture Lib "user32" () As Long
 这俩是可以解决,看你怎么写了,首先要不停的判断那个所谓的QQ有没有移动
然后 
ReleaseCapture
SendMessage hwnd, &HA1, 2, 0 '让被点中的(mousedown)窗口跟着鼠标移动的轨痕走

------解决方案--------------------
VB code

'form1代码
Private Sub Form_Load()
        prevWndProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
        SetWindowLong Me.hwnd, GWL_WNDPROC, AddressOf WndProc
        Form2.Show
        
End Sub

Private Sub Form_Unload(Cancel As Integer)
        SetWindowLong Me.hwnd, GWL_WNDPROC, prevWndProc
End Sub