Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: PAN - перетаскивание Добавлено: 27.04.06 17:36  

Автор вопроса:  roman
Подскажите, пожалуйста, как реализовать перетаскивание контрола (напр. 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

Заранее, Спасибо

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 27.04.06 23:19
пикчебокс магу без мерцаний, фрейм х.з. у него незашо взять :)

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)
    
    Call ReleaseCapture
    Call SendMessage(Picture1(Index).hWnd, &HA1, 2, 0&;)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам