Fix: MFC remote desktop touchpad two-finger scroll not working
This commit is contained in:
@@ -2305,8 +2305,8 @@ BOOL CScreenSpyDlg::PreTranslateMessage(MSG* pMsg)
|
|||||||
MSG wheelMsg = *pMsg;
|
MSG wheelMsg = *pMsg;
|
||||||
wheelMsg.lParam = MAKELPARAM(pt.x, pt.y);
|
wheelMsg.lParam = MAKELPARAM(pt.x, pt.y);
|
||||||
SendScaledMouseMessage(&wheelMsg, true);
|
SendScaledMouseMessage(&wheelMsg, true);
|
||||||
|
return TRUE; // 已处理,阻止继续分发到 OnMouseWheel
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case WM_KEYDOWN:
|
case WM_KEYDOWN:
|
||||||
case WM_KEYUP:
|
case WM_KEYUP:
|
||||||
case WM_SYSKEYDOWN:
|
case WM_SYSKEYDOWN:
|
||||||
@@ -2682,7 +2682,20 @@ void CScreenSpyDlg::OnLButtonUp(UINT nFlags, CPoint point)
|
|||||||
|
|
||||||
BOOL CScreenSpyDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user