Declare Function ReleaseCapture Lib "user32" () As Long
  Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  Const HTCAPTION = 2
  Const WM_NCLBUTTONDOWN = &HA1
  
  Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
          ReleaseCapture
          SendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
  End Sub

解决方案 »

  1.   

    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 Declare Sub ReleaseCapture Lib "user32" ()
    Const WM_NCLBUTTONDOWN = &HA1
    Const HTCAPTION = 2Dim lngReturnValue As Long
      If Button = 1 Then
        ReleaseCapture
        lngReturnValue = SendMessage(hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
      End If
      

  2.   

    releasecapture
    sendmessage me.hwnd,&Ha1,2,0&
      

  3.   

    Option ExplicitPrivate 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 LongConst WM_SYSCOMMAND = &H112 
    Const SC_MOVE = &HF012在Form_MouseDown事件中输入以下代码: 
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)'按下鼠标左键 
    If Button = vbLeftButton Then'为当前的应用程序释放鼠标捕获 
    ReleaseCapture'移动窗体 
    SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MOVE, 0End If 
    End Sub
      

  4.   

    '你可以用这个
    Option Explicit
    Dim mouseX As Long
    Dim mouseY As LongPrivate Sub form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If mouseX = 0 Or mouseY = 0 Then
    mouseX = X
    mouseY = Y
    End If
    End SubPrivate Sub form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If mouseX <> 0 Or mouseY <> 0 Then
           Form1.Left = Form1.Left + (X - mouseX)
            Form1.Top = Form1.Top + (Y - mouseY)
    End If
    End Sub
    Private Sub form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    mouseX = 0
    mouseY = 0
    End Sub
      

  5.   

    你完全可以不用调用API
    只要像我上面做的就可以了
    不信你试试