触摸位置未在窗口窗体应用程序中的触摸手势中正确更新

本文关键字:触摸 更新 应用程序 位置 窗口 窗体 | 更新日期: 2023-09-27 17:56:47

我实现了一个名为SimpleControl的控件。在此控件中,我已使用触摸手势实现了触摸支持。在执行触摸平移操作时,此触摸位置未正确更新。在水平或垂直方向上平移时,其工作正常。但是,当开始垂直平移,然后在水平方向上移动手指时,x 位置未正确更改,需要更多时间才能更新。那么,您能提出解决此问题的任何方法吗?

在下面的示例中,当进行触摸平移时,触摸点会在输出窗口中更新。

复制过程:1. 运行示例2.开始垂直平移,发现位置在输出窗口中更新3.然后继续水平平移,仅位置更改后x位置将发生变化。

请从下面找到样本,

示例链接

触摸位置未在窗口窗体应用程序中的触摸手势中正确更新

我找到了解决方案。 将以下代码设置为手势配置时,对角线平移操作工作正常,位置更新问题也已解决。

GESTURECONFIG gc = new GESTURECONFIG();
                    gc.dwID = GID_PAN;
                    gc.dwWant = GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY | GC_PAN_WITH_INTERTIA;
                    gc.dwBlock = GC_PAN_WITH_GUTTER;
                    bool bResult = SetGestureConfig(
                        Handle, 
                        0,      
                        1,      
                        ref gc, 
                        _gestureConfigSize
                    );