我有一个纯粹的Winapi应用程序,需要一些新的function。 其中之一将最好作为两个列表实现,您可以在列表之间拖放(多个)元素。 新function可以限制为一个对话框。
什么是最快捷的方式来实现呢? 一些想法:
任何应该避免的选项?
任何更好的想法?
什么是最快实施?
任何指针如何开始?
我的建议是,如果应用程序在纯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样品的地方。