【问题标题】:How to make COM DoDragAndDrop API be touch sensitive on Windows 7/8?如何使 COM DoDragAndDrop API 在 Windows 7/8 上具有触控功能?
【发布时间】: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


    【解决方案1】:

    DoDragDrop() 确实支持 Win7/8 上的触摸(是的,文件的 D&D 是由 Windows 资源管理器使用 DoDragDrop() 实现的),所以您的问题与其他问题有关。您是否检查过 DoDragDrop() 是否向您的代码返回任何您可能忽略的错误代码?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      • 2016-10-02
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多