Перетащите и поместите между двумя списками MFC TreeList при переполнении стека

Мне нужно перетащить&Перетащите элемент из одного TreeList в другой ThreeList, но найдите только учебники, чтобы сделать это в том же TreeList. Может ли кто-нибудь помочь с этим? Также мне интересно, как перетащить файл или папку из файловой системы (проводник окон) в TreeList? Я использую MFC C ++. Спасибо!

0

Решение

Не опуская обязательного реальный ответ на все вопросы MFC (который является «Не используйте MFC — если только в 1997 году вы не живете»), OLE drag & Падение поможет вам достичь обеих целей.

Хотя сейчас у меня нет под рукой 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 & Падение образцов:

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]