Еще одна бредовая идея пришла в голову после пользования тачпада - хорошо бы кнопками прокручивать содержимое окон. Перепробовал массу идей, но в итоге получился каркас:
If OpenWindow(0, 0, 0, 230, 90, "Event handling example...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
RegisterHotKey_(WindowID(0),15,#MOD_ALT,#VK_DOWN)
RegisterHotKey_(WindowID(0),14,#MOD_ALT,#VK_UP)
Repeat
Event = WaitWindowEvent()
Select Event
Case #WM_HOTKEY
If EventwParam()=15 Or EventwParam()=14
hwnd=GetForegroundWindow_()
If hwnd
;SendMessage_(hwnd,#WM_MOUSEWHEEL,10<<16,100+65536+100)
;mouse_event_(#MOUSEEVENTF_WHEEL,0,0,120,0)
In.INPUT
In\type = #INPUT_MOUSE;
In\mi\dwFlags = #MOUSEEVENTF_WHEEL
vv=60
If EventwParam()=15
In\mi\mouseData = -vv;-1 * 120
ElseIf EventwParam()=14
In\mi\mouseData = vv;1 * 120
EndIf
in\mi\dx=100
in\mi\dy=100
SendInput_(1,@In,SizeOf(INPUT))
Else
Debug "no window"
EndIf
EndIf
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
RegisterHotKey_(WindowID(0),15,#MOD_ALT,#VK_DOWN)
RegisterHotKey_(WindowID(0),14,#MOD_ALT,#VK_UP)
Repeat
Event = WaitWindowEvent()
Select Event
Case #WM_HOTKEY
If EventwParam()=15 Or EventwParam()=14
hwnd=GetForegroundWindow_()
If hwnd
;SendMessage_(hwnd,#WM_MOUSEWHEEL,10<<16,100+65536+100)
;mouse_event_(#MOUSEEVENTF_WHEEL,0,0,120,0)
In.INPUT
In\type = #INPUT_MOUSE;
In\mi\dwFlags = #MOUSEEVENTF_WHEEL
vv=60
If EventwParam()=15
In\mi\mouseData = -vv;-1 * 120
ElseIf EventwParam()=14
In\mi\mouseData = vv;1 * 120
EndIf
in\mi\dx=100
in\mi\dy=100
SendInput_(1,@In,SizeOf(INPUT))
Else
Debug "no window"
EndIf
EndIf
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
Интересно, что у MS Paint винды10 скролл работает с Ctrl+стрелки - то, чего я изначально добивался.
Дополнение. Забыл указать, что координаты мыши определяются по-разному. Рабочий вариант
Комментарии
Отправить комментарий