Подскажите, пожалуйста, как реализовать перетаскивание контрола (напр. Frame) по форме.
Выглядеть это должно так: давим мышью по контролу и тащим его.
Следующий код работает плохо (контрол страшно мигает).
Dim StartX As Long
Dim StartY As Long
Dim DX As Long
Dim DY As Long
Dim bMove As Boolean
Private Sub Frame1_MouseDown(Button, Shift, X, Y)
StartX = X
StartY = Y
bMove = True
End Sub
Private Sub Frame1_MouseMove(Button, Shift, X, Y)
If bMove Then
DX = X - StartX
DY = Y - StartY
Frame1.top = Frame1.top + DY
Frame1.Left = Frame1.Left + DX
StartX = X
StartY = Y
End If
End Sub
Private Sub Frame1_MouseUp(Button,Shift,X,Y)
bMove = False
End Sub
пикчебокс магу без мерцаний, фрейм х.з. у него незашо взять
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 Declare Function ReleaseCapture Lib "USER32" () As Long
Private Sub Picture1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)