WinAPI中的拖放功能

6
我有一个纯Winapi应用程序,需要添加一些新功能。其中一个最好的实现方式是使用两个列表,您可以在这两个列表之间拖放(多个)元素。新功能可以限制为单个对话框。
最快实现此功能的方法是什么? 以下是一些想法:
- 纯Winapi(使用DetectDrag) - 提供此对话框的单独MFC或.NET DLL - 嵌入Microsoft WebBrowser控件并使用JQuery
有哪些选项应该避免? 是否有更好的想法? 最快实现的方法是什么? 如何开始?

我知道这是一个非常老的问题,但是这段代码看起来就像提问者想要的:https://web.archive.org/web/20111231090913/http://forums.fanatic.net.nz/index.php?showtopic=18873 - bimjhi
5个回答

9

我的建议是,如果应用程序是纯winapi,则保持不变。

仅为具有可拖动项目的一个对话框启动.NET框架运行时与使用JQuery进行该功能一样糟糕-如果你问我,至少这是 thedailywtf.com 值得注意的(但是再次,你没有问我 ;) )。

否则,您将使自己(以及其他人)陷入一些维护上的困境,最快的方法将成为最棘手的问题。

编辑:也许 这篇 文章 将有助于实现拖放 - 它们是关于在ListView中重新排序行,但可能会帮助理解思路。


5

不久之前,Raymond Chen在博客上写了一系列关于这个主题的文章。从这里开始。


2

在Win32 API中实现后,有几点需要注意:

ListBox控件不支持拖放操作,必须使用ListView控件。

这篇CodeProject文章非常好。(感谢macbirdie)
当然,MSDN关于ListViews的部分也非常有用。


0

所有的代码都在MSDN上,使用C语言和Win32 API编写。只需复制粘贴即可。

另外,可以查看专业的Win32 API NG新闻组news://194.177.96.26/comp.os.ms-windows.programmer.win32,这里讨论了几十年的相关内容...


news://194.177.96.26/现在只是一个浏览器搜索字符串(在这种情况下是Google)。不幸的是,“几十年来讨论的材料”并没有出现。可能存在一个存档,但通过这个新闻搜索没有透露其行踪。 - Laurie Stearn

-1

无论你最熟悉哪种方法,都会是最快的。

在.NET Windows Forms中,这样做非常容易。您只需编写几行代码即可轻松地在ListBox条目之间拖放项目。可以查看CodeProject等网站上的示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接