![]() |
|
|
![]()
|
|
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
Подскажите как лучше организовать drag and drop для МФС.
Нужно просто перетаскивать файлы, а система сама знает как раскрывать их...?? Это сообщение отредактировал(а) sol78 - 28.8.2008, 17:22 |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
А точнее можно сформулировать вопрос?
Куда перетаскивать? Какие файлы? И какая система должна знать как раскрывать файлы? -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
Для аппликации уже написана функция "open file". так что вроде все что нужно уже естьб нет только перетаскивания файлов, проблема в том что я никогда не писала на мфс. можно описать порядок действий и необходимые функции, и маленький пример?
Спасибо! |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Это в PreTranslateMessage
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
а что тут не то?
drag_drop Добавлено @ 16:05 Andrey44, можно немного пояснить ваш код, что это за условие, мне вот не понятно как мы распознаем это событие перетаскиванияб как узнаем что мы в нижней форме? Это сообщение отредактировал(а) sol78 - 29.8.2008, 16:22 |
|||
|
||||
| voov |
|
||||||||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
ты сама ответила на свой вопрос. следующее условие это как раз и делает
|
||||||||
|
|||||||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
voov, возникоает еще один вопрос - где вызывать это кусок кода, т.е. как подписаться на это событие (каков принцип)?
Поиск в гугле мне дал несколько стандартых функций для этой реализации, тот например тут чем способ который мне предложил Andrey44, лучше????? |
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
Andrey44, твой пример конечно хорош, только не работае....
проблема то что я на своем окне не определены дроп еффекты, т.е. претаскивая файл я вижу значек DROPEFFECT_NONE (круглый перечеркнутый). Что с этим делыать? |
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
проблема решена частично!
Andrey44, ваш код довести до рабочего состояния не удалось. пришлось пойти несколько другим путем делаем овервратинг для нескольких методов в том числе и onDrop() это решила проблему...но drag and drop на shortcut не работает.... вернее так - перетакиваю файл на иконку и (краш)... прошлась дебагером и вижу как то не понятным мне способом вызывается стандартная функция onOpenDocument() (какой там опен апликация еще на поднялась...) изменить порядок дествий или вообще вмешаться в этом процесс мне не удалось... хотельсь получить доступ к этому процессу...как в первом случае, как это лечат? что такое shortcut с точки зрения MFC???? |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 6 Всего: 146 |
Нужно разрешить перетаскивание - вызвать функцию DragAcceptFiles для окна. При перетаскивании файла на окно, окну будет приходить сообщение WM_DROPFILES. |
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
586, спасибо, но хотелось получить совет по существующей проблеме, а не по той что уже решена.
|
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
Неужеле ни кто не сталкивался стакоы проблемой??
Специалисты обратите внимание!!! |
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
MFC на это чихать - просто при перетаскивании на shortcut система вызывает зарегистрированное приложение с определенными аругментами - обычно имя файла, которое приложение должно "открыть". Где-то в рaйоне InitInstance вызывается разбор строки параметров и решается, какие действия нужно предпринять. Вот туда и смотри. -------------------- ... |
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
уважаемый Earnest, пошла по вашему совету:
извините за кусок не понятного кода)), но одной мне не разобраться Я думаю что вы это имели введу? Тут вызов библиотечтых функций класса CWinApp, как я могу вмешться в этот процесс??? Это сообщение отредактировал(а) sol78 - 10.9.2008, 14:43 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |