回 帖 发 新 帖 刷新版面

主题:如何实现控件移动,谢了

如何使控件象设计时那样鼠标拖动(blackbox为picture控件)

我编的程序错哪了?
Private Sub blackbox_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
黑箱mousedown = 1


黑箱mousex = x + blackbox.Left
黑箱mousey = y + blackbox.Top

End If
End Sub


Private Sub blackbox_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If 黑箱mousedown = 1 Then

blackbox.Top = Abs(y - 黑箱mousey)
blackbox.Left = Abs(x - 黑箱mousex)



Else
End If

End Sub

Private Sub blackbox_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
黑箱mousedown = 0

回复列表 (共2个回复)

沙发

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 WM_SYSCOMMAND = &H112
  Private Const SC_MOVE = &HF010&
  Private Const HTCAPTION = 2


Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  ReleaseCapture
  SendMessage Command1.hWnd, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0
End Sub

板凳

你试试看,下面的代码能不能让你满意:

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        Label1.Move X + Label1.Left, Y + Label1.Top
    End If
End Sub

我来回复

您尚未登录,请登录后再回复。点此登录或注册