CTreeCtrl 禁用特定节点上的拖放
CTreeCtrl disable drag and drop on specific nodes
我有办法禁用CTreeCtrl的特定节点上的拖放?
我想防止将节点拖动到同一树中同一节点的子节点,并防止将节点拖动到链接到同一节点或其子节点之一的列表视图。
这仅取决于您如何处理鼠标移动处理程序中的放置目标。
您无法阻止TVN_BEGINDRAG
功能。但是,如果根本不应该拖动项目,则始终在鼠标移动处理程序中使用SetDropTarget(NULL)
,如果拖动停止,则不执行任何操作。
当允许拖动项目时,您只需要检查是否允许目标。您可以使用HitTest
查找目标项目,并可以检查是否允许将其放在此处。再次使用 SetDropTarget
.因此,用户可以看到允许的内容。
另一种方法是实现 Ole Drag&Drop 函数,如此处的示例所示。
相关文章:
- 在组合框中拖放项目
- wxWidgets 拖放文件事件处理程序初始化问题(无效static_cast)
- 拖放我的MDI被CRichEditView拦截并在CRichEditView::GetDocument中崩溃 - 如何覆
- 在特定区域拖放 | Qt
- Qt - 在QGraphicScene中拖放时如何从项目中获取文本?
- Qt 模型拖放 - 无法保存类型 QJsonValue
- 如何在 2 个应用程序之间实现拖放?
- 在拖放 QML 列表中插入/删除项目使用 cpp 模型查看
- UI具有拖放功能
- 如何使用拖放功能和点击信号函数QT创建标签
- 使用MFC在对话框上拖放文件
- QListWidget通过setItemWidget使用自定义小部件集进行拖放
- 将拖放连接到QListWidget中的函数的最佳方法
- QTextEdit-根据QCursor位置进行条件拖放
- 如果使用Qt::DecorationRole,则在拖放时崩溃
- 用代码模拟窗口拖放
- Ole 拖放故障排除
- 基于文本的角色扮演游戏拖放和保留物品功能
- 拖放C++在拖放之前操作 Outlook 文件
- CTreeCtrl 禁用特定节点上的拖放