Ich habe eine Möglichkeit, Drag & Drop auf bestimmten Knoten einer CTreeCtrl deaktivieren?CTreeCtrl Deaktivieren Drag & Drop auf bestimmten Knoten
Ich möchte verhindern, dass ein Knoten auf ein untergeordnetes Element desselben Knotens innerhalb derselben Struktur gezogen wird, und auch verhindern, dass ein Knoten in eine Listview gezogen wird, die mit demselben Knoten oder einem seiner untergeordneten Elemente verknüpft ist.
Yeah, ich benutze bereits die OnDragOver-Überschreibung, um die Fallbestimmung zu handhaben (in anderen Fällen), wusste nur nicht, ob es eine andere Möglichkeit gab, die Dropability auf bestimmten Knoten "vorübergehend" zu deaktivieren, anstatt es auch in OnDragOver herauszufinden .. Ich nehme an, dass ich im OnDragOver rekursiv die Eltern der Knoten des Knotens im HitTest überprüfe, um zu sehen, ob er den gezogenen Knoten findet (also nicht zulässt, dass ein Elternknoten zu einem seiner Kindknoten gezogen wird). Hatte nur gehofft, dass eine solche Methode schon existierte. –
Ich möchte das gleiche Verhalten wie Windows Explorer erstellen, der ein DROPEFFECT_NONE in OnDragOver zurückgibt, wenn ein Knoten über einen der untergeordneten Knoten gezogen wird. –
Dann implementieren Sie Ihre eigenen Drag & Drop wie in diesem Sampler für die Liste Steuerelement http://codeproject.cachefly.net/Articles/12342/Drag-and-Drop-Listbox-Items-using-OLE – xMRi