Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Плавное перемещение мыши, Кому интересно 
:(
    Опции темы
DenageS
Дата 4.4.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 29.9.2006

Репутация: нет
Всего: нет



 Написал код для плавного перемещения мышки.  
xX1 - начальная координата Х
yY1 - начальная координата У
xX2 - конечная координата Х
yY2 - конечная координата У
Porog - если мышка было смещена на число, большее данного, то плавное перемещение не осуществляестя (опционально)

Не судите строго.

Код модуля:
Код

Declare Function SetCursorPos Lib "user32.dll" (ByVal X As Long, ByVal Y As Long) As Long

Public Function SmoothMove(ByRef xX1, ByRef yY1, ByRef xX2, ByRef yY2, ByRef Porog)


If xX2 <> "" Then
If yY2 <> "" Then


delx = Val(xX1) - Val(xX2)
dely = Val(yY1) - Val(yY2)

If Abs(delx) > Abs(dely) Then
                If Abs(delx) < Porog Then SetCursorPos xX2, yY2: Exit Function
If Abs(delx) > Porog Then

    B = dely / delx
    z = Val(yY1)
        If Val(xX1) < Val(xX2) Then
        B = dely / delx
            For i = Val(xX1) To xX2 Step 1
            DoEvents
            Call SetCursorPos(i, z)
            z = z + B
            Next
        End If
        
        z = Val(yY1)
                If Val(xX1) > Val(xX2) Then
                B = dely / -delx
                If B > 0 Then B = B * (-1)
            For i = Val(xX1) To Val(xX2) Step -1
            DoEvents
            Call SetCursorPos(i, z)
            z = z + B
            Next
        End If
End If
    End If

    If Abs(delx) < Abs(dely) Then
                If Abs(dely) < Porog Then SetCursorPos xX2, yY2: Exit Function
    If Abs(dely) > Porog Then
    
    
    If Val(yY1) > Val(yY2) Then
    B = delx / dely
    B = Abs(B)
    t = Val(xX1)
        For i = Val(yY1) To Val(yY2) Step -1
            DoEvents
            Call SetCursorPos(t, i)
            t = t - B
        Next
    End If
        If Val(yY1) < yY2 Then
        B = delx / dely
        t = Val(xX1)
            For i = Val(yY1) To Val(yY2) Step 1
                DoEvents
                Call SetCursorPos(t, i)
                t = t + B
            Next
        End If
    End If
 End If
 
       If Abs(delx) = Abs(dely) Then
                      If Abs(dely) < Porog Then SetCursorPos xX2, yY2: Exit Function
           If Abs(dely) > Porog Then
               If Val(xX1) < Val(xX2) Then
                For i = Val(xX1) To Val(xX2) Step 1
                 DoEvents
                    Call SetCursorPos(i, i)
                    Next i
            End If
        
            If Val(xX1) > Val(xX2) Then
                For i = Val(xX1) To Val(xX2) Step -1
                    DoEvents
                    Call SetCursorPos(i, i)
                Next
            End If
        End If
    End If
End If
End If
End Function

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.