Хочу сделать возможность перетаскивать тулбар (если свойство Align=vbAlignNone) куда захочет пользователь.
Для этого в модуле формы завёл переменную bToolBarMove as Boolean
И написал следующие процедуры обработки событий
- Код: Выделить всё
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Type POINTAPI
x As Long
y As Long
End Type
Private bToolbarMove As Boolean
Option Explicit
Private Sub Toolbar1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Toolbar1.Align = vbAlignNone Then
If Button = vbRightButton Then
Dim mousePoint As POINTAPI
GetCursorPos mousePoint
Toolbar1.Top = (mousePoint.y * Screen.TwipsPerPixelY)
Toolbar1.Left = (mousePoint.x * Screen.TwipsPerPixelX)
bToolbarMove = True
End If
End If
End Sub
Private Sub Toolbar1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbRightButton Then
If bToolbarMove = True Then
Dim mousePoint As POINTAPI
GetCursorPos mousePoint
Toolbar1.Top = (mousePoint.y * Screen.TwipsPerPixelY)
Toolbar1.Left = (mousePoint.x * Screen.TwipsPerPixelX)
End If
End If
End Sub
Private Sub Toolbar1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Toolbar1.Align = vbAlignNone Then
If Button = vbRightButton Then
bToolbarMove = False
End If
End If
End Sub
Но при нажатии правой кнопкой мыши и перетаскивании панели - она у меня съезжает вправо-вниз на растояние почти ширины тулбара. Хотя вроде бы в коде указал, что верхний левый угол панели должен быть под курсором.
Подскажите плиз - где моя ошибка.