Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ListView & Drag and Drop  (Прочитано 10418 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ersh
Гость
« : 12-12-2008 10:43 » 

Сделал драг из вне в ListView используя DragAcceptFiles(hList, true) и обробатывая WM_DROPFILES.

А как сделать наоборот перетаскивание из ListView например в тот же Explorer?
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 12-12-2008 11:15 » 

Да точно так же. Идёшь в класс ListView (правое окшко) Эксплорера и добавляешь свою ф-ю в обработчик WM_DROPFILES.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
ersh
Гость
« Ответ #2 : 12-12-2008 11:24 » 

Это как, надо брать хендл окна из под мыши?
У меня даже в моем Листе сама операция драга не начинается, как сделать незнаю.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #3 : 12-12-2008 12:10 » 

ersh, если ты серьёзно расчитываешь на помощь, то скажи сначала что ты хочешь сделать. Не КАК, а ЧТО?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
ersh
Гость
« Ответ #4 : 12-12-2008 12:24 » 

В моем ListView список из трех полей (имя файла, размер, дата).
Надо реализовать копирование файлов через drag and drop.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #5 : 12-12-2008 13:13 » new

ersh, в таком случае "перетаскивание в Эксплорер" не имеет ничего общего с именно физическим перетаскиванием данных. Эксплорер это только отображение состояния файлов на диске. Тут возможны варианты:

1. Ты гуглишь в поисках интерфейса виндовского эксплорера и выясняешь, какую ему инфу надо скормить. Скорей всего это будет сделано через shell.

2. Можно сделать тупо и дубово: получить из Эксплорера текущий адрес и скопировать файлы самому, после этого послать F5 окошку Эксплорера.

3. ИМХО самый лучший вариант. В винде подобное перетаскивание или копирование производится через буфер обмена, но это не означает, что все файлы физически зпихиваются в него. В буфер обмена помещается только инфа о путях файлов, плюс может быть доп. флаг - для копирования, или перемещения. Те это всё что тебе надо будет сделать.
Подготовить инфу для буфера обмена при OnBeginDrag и попробовать "отпустить" в эксплорере. Может само получится.
Если нет, то погуглить в поисках команды, которая бы пнула эксплорер инфой из буфера воспользоваться. Хотя я думаю он должен сам отработать WM_DROPFILES. В крайнем случе может отправить это сообщение ему.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines