Как изменять позицию элемента при перетягивании его мышью - VB

Узнай цену своей работы

Формулировка задачи:

Необходимо написать процедуру обработки события, реализующую действия: элемент изменяет позицию при перетягивании его мышью, элемент изменяет размеры при растягивании его с помощью мыши. Как может выглядеть такая процедура?

Решение задачи: «Как изменять позицию элемента при перетягивании его мышью»

textual
Листинг программы
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2
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
 
Public BarX
Public BarY
 
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then BarY = Y: BarX = X
End Sub
 
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        Command1.Top = Command1.Top + Y - BarY
        Command1.Left = Command1.Left + X - BarX
    Call ReleaseCapture
    Call SendMessage(Command1.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы