【发布时间】:2013-03-11 07:07:05
【问题描述】:
在 Windows 上,拖放操作可以通过 COM DoDragAndDrop API 完成,请参阅http://msdn.microsoft.com/zh-cn/library/windows/desktop/ms678486%28v=vs.85%29.aspx。可以完美的进行D&D操作,系统集成度最好。
最近,我发现它不是触摸友好的 API,它不能很好地处理触摸事件。在 Window 7/8 上,由 CreateWindow API 创建的 Win32 窗口也可以像处理鼠标事件一样处理触摸事件。 Actullay,似乎触摸事件被转换为类似的鼠标事件,例如手指点击时触发鼠标按下事件,手指移动时触发鼠标移动事件。
然而,DoDragAndDrop COM API 不会将触摸事件转换为鼠标事件,甚至 COM 服务根本不知道触摸事件。但是我尝试将文件从一个文件夹拖到 Win8 上的另一个文件夹,它可以工作。如果 D&D 操作也是基于 COM API 实现的,我确实得到了一个冲突的结果。
当我使用 DoDragAndDrop 来支持触摸事件时,我错过了什么吗?谢谢。
【问题讨论】:
标签: winapi com drag-and-drop touch