拖放到winapi

我有一个纯粹的Winapi应用程序,需要一些新的function。 其中之一将最好作为两个列表实现,您可以在列表之间拖放(多个)元素。 新function可以限制为一个对话框。

什么是最快捷的方式来实现呢? 一些想法:

  • 纯Winapi(它是DetectDrag)
  • 提供这一个对话框的单独的MFC或.NET DLL
  • embeddedMicrosoft WebBrowser控件并使用JQuery

任何应该避免的选项?
任何更好的想法?
什么是最快实施?
任何指针如何开始?

我的建议是,如果应用程序在纯winapi,保持这种方式。

仅仅为一个带有可拖动项目的对话框启动一个.NET框架运行库就像托管一个WebBrowser控件一样糟糕,并且使用JQuery来实现这一功能 – 至少是thedailywtf.com – 如果你问我,那么值得(但是,问我 ;) )。

否则,你会把自己(也可能是其他人)变成一些可维护性的噩梦,最快的方式将成为最有问题的方式。

编辑:也许这 两篇文章将有助于实现拖放 – 他们是关于行重新排序在ListViews,但可能有助于获得这个想法。

不久之前,陈冠希就这个话题写了一系列的博文。 从这里开始

在Win32 API中实现这个之后的一些注意事项:

ListBox控件不支持拖放操作。 它必须是一个ListView控件。

这个CodeProject文章是非常好的。 (感谢macbirdie)
ListViews的MSDN部分当然是非常有用的。

所有的代码是MSDN在C和win32 api只需复制粘贴。

并参见专业的Win32 API新闻://194.177.96.26/comp.os.ms-windows.programmer.win32这里所有这些已被讨论了几十年…

无论你最熟悉的方法是最快的。

当然,在.NET Windows Forms中这样做很容易。 只需写几行代码即可轻松在ListBox条目之间拖放项目。 看看像CodeProject样品的地方。