如何使用启用惯性的控件实现捕捉点

时间:2013-07-29 09:18:05

标签: c winapi user-interface touch inertia

我目前正在实施自定义滑块控件。控制器既可以使用定位设备,也可以使用触摸输入设备进行操作。

为了提供一致且熟悉的用户体验,控件使用Windows 7中包含的Inertia API提供的简单物理模型。我已经设置了IManipulationProcessorIInertiaProcessor与我的_IManipulationEvents实施相关联。事件路由就绪,并在完成操作处理后调用惯性处理器,执行轨迹计算。

到目前为止,这么好。但是,我无法理解如何将捕捉点合并到此设置中。通过捕捉点我指的是行为,滑块应该只允许在预定点落地,而不是在两者之间。 IManipulationProcessorIInertiaProcessor似乎都没有直接支持。将此行为置于惯性处理结束时是可能的,但无法为典型的视觉反馈提供运动信息。

那么你在哪里以及如何实现快照点?

1 个答案:

答案 0 :(得分:0)

您需要为捕捉点指定一个上限和下限,如果轨迹落在捕捉点范围内,则用捕捉点位置替换投射的停止点...谨防专利申请12/983106 其作为美国出版物2012/0174005公布。您可能会发现自己存在专利侵权问题。