powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Scroll
6 сообщений из 6, страница 1 из 1
Scroll
    #38357978
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На форме есть frame и hscroll. Смысл задумки в том чтобы при прокрутке hscroll элементы внутри frame перемещались. Соответственно в модуле код:
Код: vbnet
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.
Private Declare Function CallWindowProcA Lib "user32" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowTextA Lib "user32" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Const GWL_WNDPROC = -4
Private Const WM_MOUSEWHEEL = &H20A
Private lpPrevWndProc As Long, Wheel As Integer

Public Sub Hook(hwnd As Long)
lpPrevWndProc = SetWindowLongA(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Public Sub UnHook(hwnd As Long)
Call SetWindowLongA(hwnd, GWL_WNDPROC, lpPrevWndProc)
End Sub

Private Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error GoTo xErr
If uMsg = WM_MOUSEWHEEL Then
If wParam = -7864320 Or wParam = -23592960 Or wParam = -15728640 Then hbProducts.VScroll1.Value = hbProducts.VScroll1.Value + 1 
If wParam = 7864320 Or wParam = 23592960 Or wParam = 15728640 Then hbProducts.VScroll1.Value = hbProducts.VScroll1.Value - 1 
Else
WindowProc = CallWindowProcA(lpPrevWndProc, hwnd, uMsg, wParam, lParam)
End If
xErr:
End Function



Hook это запуск с hwnd формы в которой находятся frame и vscroll. Если фокус находиться на vscroll то проблем нет все работает но если фокус попадает на элемент внутри frame то все перестаёт работать. Подскажите в чем проблема и как это исправитЬ?
...
Рейтинг: 0 / 0
Scroll
    #38358010
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у меня этот код работает.

Тестовый проект приложите.
...
Рейтинг: 0 / 0
Scroll
    #38358015
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работать то работает, но при условии что фокус в Vscroll находится!
...
Рейтинг: 0 / 0
Scroll
    #38358048
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня работает при условии, что фокус находится не на скролле.
...
Рейтинг: 0 / 0
Scroll
    #38358305
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня внутри Frame много юзерконтролов, вот когда на них попадает фокус не работает Vscroll
...
Рейтинг: 0 / 0
Scroll
    #38358470
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И с юзерконтролами работает. Что я не так делаю?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Scroll
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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