我试图让交互式手势识别(具体来说,缩放和平移)工作在我的德尔菲/ C++Builder 10.2东京应用程序。
我到目前为止所做的事:
GestureManager1。Touch.GestureManager设置为GestureManager1。Touch.Gestures下的所有内容,因为我想要交互式手势(缩放和平移),而不是“标准”手势。Touch.InteractiveGestures.igZoom。OnGesture事件处理程序。OnGesture事件处理程序是按预期触发的,但是事件的EventInfo.GestureID (它应该给出手势的类型- pan、缩放等)总是0。
我做错了什么?
发布于 2017-05-15 01:21:17
“标准”手势( Touch.Gestures.Standard下的各种线条和形状与“交互式”手势(平移、缩放、旋转)是相互排斥的。
若要处理“标准”或“自定义”手势,请添加TGestureManager。
要接收“交互式”手势,您需要删除TGestureManager。这篇Embarcadero DocWiki的文章解释了手势在VCL和FireMonkey中的工作方式,特别指出:
为了在组件中使用交互手势 (例如缩放和旋转),不需要将组件与手势管理器相关联。
这篇英特尔文章有更多关于Windows各种手势接口的详细信息。Delphi所称的“交互式”手势对应于Windows的WM_GESTURE消息。
https://stackoverflow.com/questions/43970346
复制相似问题