powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Иде оно
5 сообщений из 5, страница 1 из 1
Иде оно
    #32163031
Dimblch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем
Вопрос есть небольшой Для 2000 Access'a . Где в нем находится событе на вращение колеса мыши и есть ли оно вообще
Вопрос глупый но что поделаеш. Немогу найти :(
...
Рейтинг: 0 / 0
Иде оно
    #32163039
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OnMouseWheel?
...
Рейтинг: 0 / 0
Иде оно
    #32163048
Dimblch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага оно самое тока Access русский .. Как оно в нём называется
...
Рейтинг: 0 / 0
Иде оно
    #32163053
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С сайта микрософт:

Создаем на VB6 (!) проект ActivX DLL (!) .
Создаем модуль (обычный)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Option Compare Text
Option Explicit

Public CMouse As CMouseWheel
Declare Function SetWindowLong Lib  "user32"  Alias  "SetWindowLongA"  _
    (ByVal hwnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long

Public Declare Function CallWindowProc Lib  "user32"  Alias  "CallWindowProcA"  _
    (ByVal lpPrevWndFunc As Long, _
     ByVal hwnd As Long, _
     ByVal msg As Long, _
     ByVal wParam As Long, _
     ByVal lParam As Long) As Long
     
Public Const GWL_WNDPROC = - 4 
Public Const WM_MouseWheel = &H20A
Public lpPrevWndProc As Long
Public Function WindowProc(ByVal hwnd As Long, _
    ByVal uMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long
    Select Case uMsg
        Case WM_MouseWheel
            CMouse.FireMouseWheel
            If CMouse.MouseWheelCancel = False Then
                WindowProc = CallWindowProc(lpPrevWndProc, hwnd, uMsg, wParam, lParam)
            End If
            
        Case Else
           WindowProc = CallWindowProc(lpPrevWndProc, hwnd, uMsg, wParam, lParam)
    End Select
End Function


Создаем модуль класса с именем CMouseWheel - по этому имени далее будем его вызывать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Option Compare Text
Option Explicit

Private frm As Object
Private intCancel As Integer
Public Event MouseWheel(Cancel As Integer)

Public Property Set Form(frmIn As Object)
    Set frm = frmIn
End Property

Public Property Get MouseWheelCancel() As Integer
    MouseWheelCancel = intCancel
End Property

Public Sub SubClassHookForm()
    lpPrevWndProc = SetWindowLong(frm.hwnd, GWL_WNDPROC, _
                                    AddressOf WindowProc)
      Set CMouse = Me
   End Sub

Public Sub SubClassUnHookForm()
    Call SetWindowLong(frm.hwnd, GWL_WNDPROC, lpPrevWndProc)
End Sub

Public Sub FireMouseWheel()
    RaiseEvent MouseWheel(intCancel)
End Sub


Компилим, получаем dll-библитеку, которую прийдется все время таскать собой. Подключаем ее через ссылку к Access (на клиентском прийдет регестрировать)
В форме (CMouseWheel - имя модуля класса) пишем примерно следующий код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Option Compare Database
Option Explicit

Private WithEvents clsMouseWheel As CMouseWheel

Private Sub Form_Load()
    Set clsMouseWheel = New CMouseWheel
    Set clsMouseWheel.Form = Me
    clsMouseWheel.SubClassHookForm
End Sub

Private Sub Form_Close()
   clsMouseWheel.SubClassUnHookForm
   Set clsMouseWheel.Form = Nothing
   Set clsMouseWheel = Nothing
End Sub

Private Sub clsMouseWheel_MouseWheel(Cancel As Integer)
    MsgBox  "You cannot use the mouse wheel to scroll records." 
    Cancel = True
End Sub


Да, если все это провернуть напрямую в акесе (модкль создать можно, модуль класса - можно), то он умирает
Другого пути отменить событие прокручивания мыши я не знаю. В Акес2002 че-то появилось , но оно не работает (у меня во всяком случае) на отмену прокрутки.
...
Рейтинг: 0 / 0
Иде оно
    #32163068
Dimblch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Senin Victor Спасибо за помошь
Супер :) Тоесть я искал то чего нет... Ваять придется самому , и не факт что оно отработает нормально....
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Иде оно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]