powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Пара мыслей про хитрую мышь...
1 сообщений из 1, страница 1 из 1
Пара мыслей про хитрую мышь...
    #32613418
Tamara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первый раз пытаюсь не только спросить, но и что-то сказать! Если верно, может, кому-то пригодится...
Когда мы работали с MouseWheel.dll , программа иногда, но падала.
Попыталась сделать что-то похоже, но без классов и без dll
Если на кручение мышки все-равно делаешь запрет, нет смысла генерировать событие в классе, да и вообще делать класс..
Сделала так
В отдельном модуле написала:
'---------------------------------------------------
Option Compare Database
Option Explicit

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

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
Case Else
WindowProc = CallWindowProc(lpPrevWndProc, hwnd, uMsg, wParam, lParam)
End Select
End Function

Public Sub SubClassHookForm(frmIn As Access.Form)

lpPrevWndProc = SetWindowLong(frmIn.Form.hwnd, GWL_WNDPROC, _
AddressOf WindowProc)
End Sub

Public Sub SubClassUnHookForm(frmIn As Access.Form)
Call SetWindowLong(frmIn.Form.hwnd, GWL_WNDPROC, lpPrevWndProc)
End Sub

Теперь в главной форме и в каждой из двух подформ на form_load вызвала SubClassHookForm(Me) , а на form_close вызвала SubClassUnHookForm(Me)
Вроде-бы колесико не двигалась ни на форме, ни в подформах...
Не знаю, не опасно ли это для программы?!
После того, как это напишешь, надо перегрузить акцесс и снова зайти в программу, но не в дизайн... !!! И проверить.
Пытаюсь то же самое сделать в Акцесс95, но там нет AddressOf - замучалась уже - смотри мой предыдущий топик...
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Пара мыслей про хитрую мышь...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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