新建一个模块,加入SendMessage的函数声明: 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 在需要移动的地方的MouseDown事件中加入“If Button <> 1 Then Exit Sub ReleaseCapture SendMessage Me.hwnd, &HA1, 2, 0& ”例如: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '拖动窗口 If Button <> 1 Then Exit Sub ReleaseCapture SendMessage Me.hwnd, &HA1, 2, 0& End Sub 这个功能在Vb.Net中实现是比在Vb6.0中酷多了!
新建一个模块,加入SendMessage的函数声明: 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 在需要移动的地方的MouseDown事件中加入“If Button <> 1 Then Exit Sub ReleaseCapture SendMessage Me.hwnd, &HA1, 2, 0& ”例如: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '拖动窗口 If Button <> 1 Then Exit Sub ReleaseCapture SendMessage Me.hwnd, &HA1, 2, 0& End Sub 这个功能在Vb.Net中实现是比在Vb6.0中酷多了!
'32 位版本: ( Function 有返回值,Integer 改成 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'共用常数: Const WM_SYSCOMMAND = &H112 Const SC_MOVE = &HF012'若要移动 Form,程序码如下: Private Sub Form_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) Dim i As Long i = ReleaseCapture i = SendMessage(Form1.hwnd, _ WM_SYSCOMMAND, SC_MOVE, 0) End Sub
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 LongPublic Sub Drag_me(Object_Name As Object) ReleaseCapture SendMessage Object_Name.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0& End Sub ''''''''''' 在Form的MouseDown事件里打 Drag_me me
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
在需要移动的地方的MouseDown事件中加入“If Button <> 1 Then Exit Sub
ReleaseCapture
SendMessage Me.hwnd, &HA1, 2, 0&
”例如:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'拖动窗口
If Button <> 1 Then Exit Sub
ReleaseCapture
SendMessage Me.hwnd, &HA1, 2, 0&
End Sub
这个功能在Vb.Net中实现是比在Vb6.0中酷多了!
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
在需要移动的地方的MouseDown事件中加入“If Button <> 1 Then Exit Sub
ReleaseCapture
SendMessage Me.hwnd, &HA1, 2, 0&
”例如:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'拖动窗口
If Button <> 1 Then Exit Sub
ReleaseCapture
SendMessage Me.hwnd, &HA1, 2, 0&
End Sub
这个功能在Vb.Net中实现是比在Vb6.0中酷多了!
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'共用常数:
Const WM_SYSCOMMAND = &H112
Const SC_MOVE = &HF012'若要移动 Form,程序码如下:
Private Sub Form_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
Dim i As Long
i = ReleaseCapture
i = SendMessage(Form1.hwnd, _
WM_SYSCOMMAND, SC_MOVE, 0)
End Sub
Public Declare Function ReleaseCapture Lib "user32" () As LongPublic Sub Drag_me(Object_Name As Object)
ReleaseCapture
SendMessage Object_Name.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Sub
'''''''''''
在Form的MouseDown事件里打
Drag_me me