diff --git a/lib/win/ApplicationWin32.cpp b/lib/win/ApplicationWin32.cpp index 951f979..7b57540 100644 --- a/lib/win/ApplicationWin32.cpp +++ b/lib/win/ApplicationWin32.cpp @@ -269,6 +269,7 @@ public: case WM_MOUSEHOVER: case WM_NCMOUSEHOVER: case WM_MOUSEWHEEL: + case WM_MOUSEHWHEEL: case WM_CHAR: case WM_UNICHAR: window->_incomingEvent(&HWNDEvent(uMsg, wParam, lParam)); diff --git a/lib/win/WindowWin32.cpp b/lib/win/WindowWin32.cpp index e02ac1e..6af847d 100644 --- a/lib/win/WindowWin32.cpp +++ b/lib/win/WindowWin32.cpp @@ -1190,6 +1190,24 @@ public: } return; } + case WM_MOUSEHWHEEL: + { + if (m_callback) + { + int x, y, w, h; + getWindowFrame(x, y, w, h); + SWindowCoord coord = + { + { GET_X_LPARAM(e.lParam), h-GET_Y_LPARAM(e.lParam) }, + { GET_X_LPARAM(e.lParam), h-GET_Y_LPARAM(e.lParam) }, + { float(GET_X_LPARAM(e.lParam)) / float(w), float(h-GET_Y_LPARAM(e.lParam)) / float(h) } + }; + SScrollDelta scroll = {}; + scroll.delta[0] = GET_WHEEL_DELTA_WPARAM(e.wParam) / double(-WHEEL_DELTA); + m_callback->scroll(coord, scroll); + } + return; + } case WM_CHAR: case WM_UNICHAR: {