powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / теоритический вопрос по классам
3 сообщений из 28, страница 2 из 2
теоритический вопрос по классам
    #32344902
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри, нашел
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Const GWL_WNDPROC = (-4)
...
Рейтинг: 0 / 0
теоритический вопрос по классам
    #32344907
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Private Const GWL_WNDPROC As Long = -4\r
\r
>а можно поподробнее о перехвате обработчика\r
\r
По ищи по инету по словам хук, субклассинг и по имени константы GWL_WNDPROC.\r
\r
А пок авот простой пример от микрософт /topic/32478 для отмену прокрутки колесика. Только в акесе его классом не делай - только dll
...
Рейтинг: 0 / 0
теоритический вопрос по классам
    #32345016
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чегось не пойму...
делаю перехват и обратно все отдаю форме а форма воспринимает только переходы по записям...

это имеет отношение что делать нужно через длл ?

Код: 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.
Public 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 lpPrevWndProc
Public Const GWL_WNDPROC = - 4 

'     Устанавливает наш обработчик событий для формы'
 Sub evnt()
    Dim frm As Form
    Set frm = Forms!ttt
    
    lpPrevWndProc = SetWindowLong(frm.hWnd, GWL_WNDPROC, AddressOf WindowProc)
 End Sub
    ' Возвращает обратно станд. обработчик'
Sub ret_evnt()
    SetWindowLong hndForm, GWL_WNDPROC, lpPrevWndProc

End Sub
  
Public Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
     Debug.Print uMsg

   ' вызываем станд. функцию (которая была раньше)
   WindowProc = CallWindowProc(lpPrevWndProc, hWnd, uMsg, wParam, lParam)
End Function
...
Рейтинг: 0 / 0
3 сообщений из 28, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / теоритический вопрос по классам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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