我在网上找了好多代码,都是这样的。可是为什么我的无法运行啊?Option ExplicitPrivate Declare Function ReleaseCapture Lib "user32" () As LongPrivate 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 = &H112Const SC_MOVE = &HF012
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, 0&End IfEnd Sub我用的是win 2000 server+ vb6

解决方案 »

  1.   

    1.98和2000下常数不同,2000下:
    Private Const SC_MOVE = &HF010&2.即使修改常数,你的代码如果在窗体无标题栏时也不会有效3.这样:
    Option Explicit
    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 Const HTCAPTION = 2
    Private Const WM_NCLBUTTONDOWN = &HA1Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    '按下鼠标左键
        Dim i As Long
        If Button = vbLeftButton Then
            ReleaseCapture
            SendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
        End If
    End Sub
      

  2.   

    楼上的应该没有问题,也可以是其它的控件mousedown!比如,移动一个没有边框的窗体,可以在label上mousedown(其实是将其看成非客户区)!Private Sub label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    '按下鼠标左键
        Dim i As Long
        If Button = vbLeftButton Then
            ReleaseCapture
            SendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
        End If
    End Sub
      

  3.   

    实在对不起,这几天刚开学,没多上网,没有看到你回话!
    我想你说的问题应该是不可能,因为我在我的计算机上调试通过了,我用的是win2000!
    你要注意,hwnd的对象!!!