Страница: 1 |
Страница: 1 |
Вопрос: Drag'n'Drop на System Tray
Добавлено: 09.02.11 15:48
Автор вопроса: Arseny | ICQ: 298826769
Что-то я не представлял себе, что в этом будет трудность, но увы... в общем, кто-нибудь это делал? реально ли это вообще, и если реально, то как осуществляется? VB6. Прога висит в трее. должна принять имя файла. на события мыши, в конце концов трей же реагирует!
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 09.02.11 16:25
перехват сообщенй у MsTray32, полагаю..
Номер ответа: 2
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #2
Добавлено: 09.02.11 20:46
AgentFire: Я не ожидал, что банальный ДнД потребует хуков, а посему - безмерно огорчен...
Нашел вот примерчик на сях, но сам в них секу, потому просьба к господам наСИльникам: ежели есть свободная минута - посмотреть, нельзя ли сие адаптировать на vb6?
http://www.codeproject.com/KB/cpp/DragnDropOnTrayIcon.aspx
поскольку там нужда в регистрации, сам исходник выложу отдельно:
http://ifolder.ru/21802112
Номер ответа: 3
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 09.02.11 22:19
Выглядит как костыли какие-то На Win7 при перетаскивании файла в область трея у меня не раскрывается окошко со скрытыми значками. Так, как при этом в принципе перетащить файл на иконку
Номер ответа: 4
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #4
Добавлено: 09.02.11 22:47
Winand: если сильно надо перетаскивать файлы в трей, значит надо значок в трее сделать неубираемым А насчет костыля - да. костыль. но костыль, можно сказать, позолоченный - ни у кого такого нет
Номер ответа: 5
Автор ответа:
HIWORD
Вопросов: 0
Ответов: 14
Профиль | | #5
Добавлено: 09.02.11 23:46
Arseny,
боюсь ошибиться, полностью не проверял (нет времени), но все же, если пойти по прямому пути:
В структуре NOTIFYICONDATA поле uCallBackMessage установить в WM_DROPFILES,
в поле hwnd - дескриптор окна(пусть это будет невидимая форма).
И принимать это сообщение в оконной процедуре окна, предварительно его сабклассировав.
Ну и вызвать DragFinish, DragQueryFile, DragQueryPoint и пр.
Номер ответа: 6
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #6
Добавлено: 10.02.11 00:48
Всё правильно - ошибаешься
uCallBackMessage - это оконное сообщение, которое будет отсылаться окошку hwnd при событиях трея. Например окно получает WM_MOUSEMOVE а параметры lparam,wparam содержат инфу о событии в трее