我需要将项目从一个 TreeList 拖放到另一个 ThreeList,但只能找到在同一个 TreeList 中进行此操作的教程。任何人都可以帮忙吗?我也很有趣如何将文件或文件夹从文件系统(窗口资源管理器)拖放到 TreeList?我正在使用 MFC C++。谢谢!
问问题
1018 次
1 回答
2
在不遗漏对所有 MFC 问题的强制性真实答案(即“不要使用 MFC — 除非您居住的地方是 1997 年”)的情况下,OLE 拖放将帮助您实现这两个目标。
虽然我目前没有手边的 MSVC,但这个例子似乎相当彻底......移动、复制和滚动:
http://www.ucancode.net/CPP_Library_Control_Tool/OLE-DRAG-DROP-TREE-Control-CTreeCtrl-VC-Article.htm
你可以以此为基础。但是对于从 Windows-Explorer 中插入,请在您的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 & Drop 示例:
于 2012-09-12T14:29:49.143 回答