【发布时间】:2016-04-28 03:51:12
【问题描述】:
我有办法在 CTreeCtrl 的特定节点上禁用拖放功能吗?
我想防止将节点拖动到同一棵树中同一节点的子节点,并防止将节点拖动到链接到同一节点或其子节点之一的列表视图。
【问题讨论】:
标签: c++ mfc treecontrol
我有办法在 CTreeCtrl 的特定节点上禁用拖放功能吗?
我想防止将节点拖动到同一棵树中同一节点的子节点,并防止将节点拖动到链接到同一节点或其子节点之一的列表视图。
【问题讨论】:
标签: c++ mfc treecontrol
这仅取决于您如何处理鼠标移动处理程序中的放置目标。
您不能阻止TVN_BEGINDRAG 功能。但是,如果根本不应该拖动该项目,您总是在鼠标移动处理程序中使用SetDropTarget(NULL),如果拖动停止,您什么也不做。
当允许拖动项目时,只需要检查目标是否允许。您使用HitTest 找到目标项目,您可以检查它是否允许在此处放置。再次使用SetDropTarget。所以用户可以看到什么是允许的。
另一种方法是实现 Ole Drag&Drop 函数like in this sample here。
【讨论】: