在C ++上的两个MFC TreeList之间拖放

时间:2012-09-12 13:49:02

标签: c++ mfc treelist

我需要将项目从一个TreeList拖放到另一个ThreeList,但只查找教程以在同一个TreeList中进行此操作。 anybony可以帮忙吗?我也很有意思如何将文件系统(窗口浏览器)中的文件或文件夹拖放到TreeList?我正在使用MFC C ++。谢谢!

1 个答案:

答案 0 :(得分:2)

在没有省略所有MFC问题的强制性真实答案的情况下(“不使用MFC - 除非它是你居住的1997年”),OLE drag& drop会帮助你实现这两个目标。

虽然我目前没有MSVC方便,但这个例子看起来相当彻底......有移动,复制和滚动:

http://www.ucancode.net/CPP_Library_Control_Tool/OLE-DRAG-DROP-TREE-Control-CTreeCtrl-VC-Article.htm

您可以将其作为基础。但是,对于从Windows资源管理器中删除,请在OnDragEnter()OnDragOver()方法中进行额外检查以查看CF_HDROP数据是否可用:

if (pDataObject->IsDataAvailable(CF_HDROP)) {
   /* Extract the DROPFILES data out of the pDataObject */
}

本文详细介绍了如何从那个古怪的DROPFILES OLE结构中获取文件名列表:

http://www.codeproject.com/Articles/840/How-to-Implement-Drag-and-Drop-Between-Your-Progra


相比之下,如果你想看到一些设计不是很糟糕的东西,请看Qt Drag& amp;删除样本:

http://doc.qt.nokia.com/4.7-snapshot/dnd.html#examples