【问题标题】:Drag&Drop between two MFC TreeList on C++在 C++ 上的两个 MFC TreeList 之间拖放
【发布时间】:2012-09-12 13:49:01
【问题描述】:

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

【问题讨论】:

    标签: c++ mfc treelist


    【解决方案1】:

    在不省略对所有 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 示例:

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

    【讨论】:

    • MFC 的新替代品是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2013-03-02
    • 1970-01-01
    相关资源
    最近更新 更多