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

时间:2016-07-13 08:48:49

标签: c# windows winforms touch gesture

我已经实现了一个名为SimpleControl的控件。在此控件中,我使用触摸手势实现了触摸支持。在进行触摸平移操作时,此触摸位置未正确更新。在水平或垂直方向上进行平移时,其工作正常。但是当开始垂直平移然后将手指水平移动直接x位置没有正确改变时,更新需要更多时间。所以,请你提出解决这个问题的方法吗?

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

复制程序: 1.运行样本 2.开始垂直平移,找到位置在输出窗口中更新 3.然后继续水平平移,x位置仅在位置改变后改变。

请从下面找到样本,

Sample Link

1 个答案:

答案 0 :(得分:1)

我找到了解决方法。当设置下面的代码到手势配置时,对角线平移操作正常工作,并且位置更新问题已经解决。

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
                    );