VB移动窗体

来源:百度知道 编辑:UC知道 时间:2024/05/31 20:42:35
如何在VB内使鼠标拖动Label时,窗体被拖动。

我这里有不用API的:

Option Explicit
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 Const HWND_TOPMOST& = -1 ' 将窗口置于列表顶部,并位于任何最顶部窗口的前面
Private Const SWP_NOSIZE& = &H1 ' 保持窗口大小
Private Const SWP_NOMOVE& = &H2 ' 保持窗口位置
Dim MX As Integer
Dim MY As Integer
Dim MDown As Boolean

Private Sub label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MDown = True
MX = X
MX = Y

End Sub

Private Sub label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next
If MDown = True Then
If Button = 1 Then
MX = X - MX
MY = Y - MY
Me.Move Me.Left + (X - MX), Me.Top + (Y - MY)