From 56419f8ecbacd2bea1a6cc07aaec2e2834d2e85d Mon Sep 17 00:00:00 2001 From: yuanyuanxiang <962914132@qq.com> Date: Fri, 1 May 2026 23:25:32 +0200 Subject: [PATCH] Fix: MFC remote desktop touchpad two-finger scroll not working --- server/2015Remote/ScreenSpyDlg.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/server/2015Remote/ScreenSpyDlg.cpp b/server/2015Remote/ScreenSpyDlg.cpp index 90930b8..a6fe50a 100644 --- a/server/2015Remote/ScreenSpyDlg.cpp +++ b/server/2015Remote/ScreenSpyDlg.cpp @@ -2305,8 +2305,8 @@ BOOL CScreenSpyDlg::PreTranslateMessage(MSG* pMsg) MSG wheelMsg = *pMsg; wheelMsg.lParam = MAKELPARAM(pt.x, pt.y); SendScaledMouseMessage(&wheelMsg, true); + return TRUE; // 已处理,阻止继续分发到 OnMouseWheel } - break; case WM_KEYDOWN: case WM_KEYUP: case WM_SYSKEYDOWN: @@ -2682,7 +2682,20 @@ void CScreenSpyDlg::OnLButtonUp(UINT nFlags, CPoint point) BOOL CScreenSpyDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { - return __super::OnMouseWheel(nFlags, zDelta, pt); + // Convert screen coordinates to client coordinates + ScreenToClient(&pt); + + // Build MSG structure for SendScaledMouseMessage + MSG msg = {}; + msg.hwnd = m_hWnd; + msg.message = WM_MOUSEWHEEL; + msg.wParam = MAKEWPARAM(nFlags, zDelta); + msg.lParam = MAKELPARAM(pt.x, pt.y); + msg.time = GetTickCount(); + msg.pt = { pt.x, pt.y }; + + SendScaledMouseMessage(&msg, true); + return TRUE; // Message handled, don't pass to parent }