调用API函数ReleaseCapture 
Private Declare Function ReleaseCapture Lib "user32" () As Long

解决方案 »

  1.   

    补充:在FORM_MOSEDOWN事件中直接调用就行了。Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If WindowState = 0 Then
            ReleaseCapture
        End IfEnd Sub
      

  2.   

    不好意思,掉了一个API sendmessage
    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 WindowState = 0 Then
            ReleaseCapture
            SendMessage hwnd, &HA1, 2, 0&
        End IfEnd Sub
      

  3.   


         Rem 无标题拖动参数
         Public Const WM_NCHITTEST = &H84
         Public Const HTCAPTION = 2
         Public Const HTCLIENT = 1
         Public Const GWL_WNDPROC = (-4)
         Public Const WM_NCRBUTTONUP = &HA5
         Public Const SWP_NOMOVE = &H2
         Public Const SWP_NOSIZE = &H1
         Public Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
         Public Const HWND_TOPMOST = -1
         Public Const HWND_NOTOPMOST = -2
         Public Const RGN_XOR = 3
         Public PROROC As Long
         Rem 实现无标题拖动的处理函数
         Function WindowProc(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
           Dim rv As Long
           Rem 如果消息为鼠标右键弹起,则弹出菜单
           If msg = WM_NCRBUTTONUP Then
              Frmmain.PopupMenu Frmmenu.popmenu
           End If
           Rem 如果消息为鼠标消息,就交给缺省消息处理程序处理
           If msg = WM_NCHITTEST Then
              rv = DefWindowProc(hwnd, msg, wParam, lParam)
              If rv = HTCLIENT Then
                 WindowProc = HTCAPTION
              Else
                 WindowProc = rv
              End If
           Else Rem 将其他的消息传给默认的窗口函数进行处理
              WindowProc = CallWindowProc(PROROC, hwnd, msg, wParam, lParam)
           End If
              
         End Function
    新建一窗体,将BorderStyle属性设为:0-none,即无标题窗体。再上面添加一PictureBox控件,将其Picture属性设置为一刚才制作好的图像。在其代码窗口中添加以下代码:
             
         Option Explicit
         
         Private Sub Form_Load()
         Rem 以下这条语句将消息处理程序设置为自定义的程序中
         PROROC = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
         Rem 设置该窗体在最前面
         SetWindowPos Frmmain.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
         Frmmenu.PictureForm_Click
         End Sub
         
         Private Sub Form_Unload(Cancel As Integer)
         Dim rv As Long
         Rem 退出程序时的处理工作,恢复标题栏拖动
            rv = SetWindowLong(hwnd, GWL_WNDPROC, PROROC)
            Unload Frmmenu
         End Sub
      

  4.   

    给你一个简单的,不过不是很好用,而且要把窗口移到左边时需要用MOUSE拖,移到右边则不用Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
      Me.Left = Me.Left + X
      Me.Top = Me.Top + Y
    End Sub
    呵呵,够简单吧?其实还可以做得更好的不过忘了。