我有办法在 CTreeCtrl 的特定节点上禁用拖放功能吗?
我想防止将节点拖动到同一棵树中同一节点的子节点,并防止将节点拖动到链接到同一节点或其子节点之一的列表视图。
我有办法在 CTreeCtrl 的特定节点上禁用拖放功能吗?
我想防止将节点拖动到同一棵树中同一节点的子节点,并防止将节点拖动到链接到同一节点或其子节点之一的列表视图。
这仅取决于您如何处理鼠标移动处理程序中的放置目标。
您无法阻止该TVN_BEGINDRAG
功能。但是如果根本不应该拖动该项目,您总是SetDropTarget(NULL)
在鼠标移动处理程序中使用,如果拖动停止,您什么也不做。
当允许拖动项目时,您只需要检查目标是否允许。您用于HitTest
查找目标项目,您可以检查它是否允许在此处放置。再次使用SetDropTarget
. 所以用户可以看到什么是允许的。
另一种方法是在此示例中实现 Ole Drag&Drop 函数。