Здравствуйте, shurik., Вы писали:
S>Здравствуйте, ionicman, Вы писали:
I>>Так вот не работает, к сожелению. Я знаю что дроп такто через COM. Но вроде бы говорят что можно и без него.
S>без кома вроде только получать файлы можно (см. WS_EX_ACCEPTFILES)
I>>Подскажите, кто знает. Или хотябы можно ли сделать это на простом API?
S>а чтоб быть источником драгдропа надо заморочиться по полной (см. DoDragDrop) 8)
У мну проблема сделать драг-дроп исключительно в своем приложении. Мож кто подскажет, как это можно сделать "по-простому". Про ДуДрагДроп (и всех остальных ежей с ней) читал и примерно представляю как это делать, но лома-а-а-а-а-ет!!! Помню где-то видел статью, автор по-моему Пол Дилация, где как раз объясняется, как сделать "самодельный драг-дроп" внутри своего приложения. Но поиском по сайту не нашел. Кстати в этой статье автор называет стандартный драг-дроп для таких задач "стрельбой из пушек по воробьям". Подскажите, как такое сделать или где найти эту статью (или хотя бы что-то похожее).
Здравствуйте, programmater, Вы писали:
P>Здравствуйте, shurik., Вы писали:
S>>Здравствуйте, ionicman, Вы писали:
I>>>Так вот не работает, к сожелению. Я знаю что дроп такто через COM. Но вроде бы говорят что можно и без него.
S>>без кома вроде только получать файлы можно (см. WS_EX_ACCEPTFILES)
I>>>Подскажите, кто знает. Или хотябы можно ли сделать это на простом API?
S>>а чтоб быть источником драгдропа надо заморочиться по полной (см. DoDragDrop) 8)
P>У мну проблема сделать драг-дроп исключительно в своем приложении. Мож кто подскажет, как это можно сделать "по-простому". Про ДуДрагДроп (и всех остальных ежей с ней) читал и примерно представляю как это делать, но лома-а-а-а-а-ет!!! Помню где-то видел статью, автор по-моему Пол Дилация, где как раз объясняется, как сделать "самодельный драг-дроп" внутри своего приложения. Но поиском по сайту не нашел. Кстати в этой статье автор называет стандартный драг-дроп для таких задач "стрельбой из пушек по воробьям". Подскажите, как такое сделать или где найти эту статью (или хотя бы что-то похожее).
Думаю "по-простому" имеется ввиду примерно так
case WM_LBUTTONDOWN:
SetCapture(m_hWnd);
// запоминаем что тащим и меняем курсор
case WM_MOUSEMOVE:
// ...
case WM_LBUTTONUP:
ReleaseCapture();
// вспоминаем что тащим и делаем что надо
это конечно ооочень примерно, но я мысль мне пришла такая первая 8)
Только подумайте вот о чём — люди писавшие стандартный драгдроп уже обо всех проблемах подумали и найденные исправили
а вот вы с самопальным 100% огребёте кучу проблем 8) и скорей всего на их решение уйдёт больше времени чем на понимание работы и реализацию стандартного драгдропа и часть проблем после этого всё равно может остаться.
Я бы не поленился и изучил, может либы какие поискал, всё равно ведь пригодится. Куда ж в 21 веке без драгдропа 8)
S>Только подумайте вот о чём — люди писавшие стандартный драгдроп уже обо всех проблемах подумали и найденные исправили S>а вот вы с самопальным 100% огребёте кучу проблем 8) и скорей всего на их решение уйдёт больше времени чем на понимание работы и реализацию стандартного драгдропа и часть проблем после этого всё равно может остаться.
S>Я бы не поленился и изучил, может либы какие поискал, всё равно ведь пригодится. Куда ж в 21 веке без драгдропа 8)
Да я бы с удовольствием и через COM — примеры есть как его запустить. Но мне надо просто бросить уже готовый список в приложение. иными словами HWND у меня уже есть. если надо через COM -запросто — но только подскажите как.
Здравствуйте, ionicman, Вы писали:
I>Да я бы с удовольствием и через COM — примеры есть как его запустить. Но мне надо просто бросить уже готовый список в приложение. иными словами HWND у меня уже есть. если надо через COM -запросто — но только подскажите как.
На codeproject.com есть масса примеров
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Вобщем вопрос все еще открыт. Как послать приложению список файлов? Уже свормированный? Запросить у окна IDropTarget и вызвать Drop пробовал — умирает. Проблема с использованием DoDragDrop — почему не могу использовать — потому что у меня drag начитается по правой клавише, а придурошная винда считает что завершение драга всегда по левой клавише. Если кто желала чтонидь — поделитесь — link или сорец даже без объяснений вполне подойдутю спасибо большое заранее