我正在构建一个适用于 Windows 桌面的绘图应用程序(Visual Studio 2019、C++、MFC)。当用户按下左键移动鼠标时,我使用
WM_LBUTTONDOWN
、WM_MOUSEMOVE
和 WM_LBUTTONUP
来绘制像素。
当我在 Surface Pro 4 上测试它时,如果我在屏幕上按下笔并移动(期望它进行绘制),则客户端窗口会滚动。 Spy++ 显示大量
WM_HSCROLL
和 WM_VSCROLL
消息进入窗口,以及偶尔的 WM_POINTERUPDATE
消息。
我应该调用 Win32 API 来更改此行为吗?或者有人知道这里可能出了什么问题吗?
您遇到的行为(客户端窗口滚动而不是绘图)可能与系统对触摸和笔输入事件的默认处理有关。
Surface Pro 和类似设备通常具有触摸和笔输入,系统会将其解释为滚动或其他触摸相关操作的手势。
为了使您的绘图应用程序按预期工作,您可能需要以不同的方式处理这些输入事件。