Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: winandfx.narod.ru
 Профиль | | #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-сайт: winandfx.narod.ru
 Профиль | | #6
Добавлено: 10.02.11 00:48
Всё правильно - ошибаешься:-)
uCallBackMessage - это оконное сообщение, которое будет отсылаться окошку hwnd при событиях трея. Например окно получает WM_MOUSEMOVE а параметры lparam,wparam содержат инфу о событии в трее

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам