КАК ОТЛОВИТЬ MOUSELEAVE У ТРЕЯ

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

КАК ОТЛОВИТЬ MOUSELEAVE У ТРЕЯ

Сообщение kif » 01.06.2006 (Чт) 9:14

Вот собственно и вопрос :-)
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.06.2006 (Чт) 9:38

Заменить трей своим.
Lasciate ogni speranza, voi ch'entrate.

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 01.06.2006 (Чт) 9:48

т.е. :shock:
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.06.2006 (Чт) 10:06

Т.е. прибить трей-хост Explorer-а и подсунуть туда свой трей-хост.
Lasciate ogni speranza, voi ch'entrate.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 03.06.2006 (Сб) 14:53

alibek
Что приведёт к неработоспособности оного.

kif
Вообще это из серии увеличения часов в трее-необходим сабклассинг чужого окна, поэтому ищи пример по увеличению часов и сабклась трей на предмет MOUSELEAVE.
Изображение

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 21.06.2006 (Ср) 19:12

что-то вы загрузили парня... можт он имел ввиду мауслив у значка своего в треи :lol:
On Fatal Error Resume Next

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 21.06.2006 (Ср) 19:21

Ну тогда по таймеру проверять координаты мыши.
Изображение

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 22.06.2006 (Чт) 8:05

Eduard

Именно это я и имел ввиду.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

AlexBlack
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 18.07.2005 (Пн) 19:14
Откуда: Киефф, Юкрейн...

Сообщение AlexBlack » 22.06.2006 (Чт) 8:31

keks-n
Чему ты учишь??
Таймер?? Издеваешься?

kif
Запускаешь SetCaption от хендла своего окна (желаетльно от того, на чьём хендле построен трей икон), когда курсор окажеться на иконке.

Теперь в обработчик событий MouseMove приходят координаты, даже когда мышка ушла за край иконки (и формы тоже).
Осталось только отловить когда полученные координаты находяться вне твоей иконки.
Когда оно так, запускаешь свою процедуру MouseLeave и запускаешь ReleaseCapture ( ЭТО ВАЖНО!!! )
Красный, но студийный.

http://www.rs-creative.com
Alex_Black@rs-creative.com

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 22.06.2006 (Чт) 9:05

спасибо :-)
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

AlexBlack
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 18.07.2005 (Пн) 19:14
Откуда: Киефф, Юкрейн...

Сообщение AlexBlack » 22.06.2006 (Чт) 12:47

не за что. ))))))
Красный, но студийный.

http://www.rs-creative.com
Alex_Black@rs-creative.com

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 22.06.2006 (Чт) 23:20

2AlexBlack слу, у меня не получилось это сделать на уровни класса :roll: Знаешь я просто так часто использую трэй в своих прогах, что решил не захламлять каждый раз форму трэем... и сделал класс (правде не сам сделал, а доработал и сделал по удобнее его, оригенал гдето скачал - бул чудка не удобен), которой мона буит подключать каждый раз просто и быстро для создания трэя со всеми возможностями... вот так одного ещё ивента не хватает МаусаЛив... может вместе его доработаем, он очень удобный, не то что куски кода в форме или модуле валаються. Быть может из трэя ещё что нить можно выжить, всего этого туда насувать так удобненько, и раздавть всем новичкам - как ещё раз заикнуться про трэй :wink: :D ?!
Вложения
BalloonSysTray.rar
SysTray with Balloon for Me/2k/XP, support Unicode.
(6.27 Кб) Скачиваний: 67
On Fatal Error Resume Next

VT
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 22
Зарегистрирован: 22.06.2006 (Чт) 16:31
Откуда: Санкт-Петербург

Сообщение VT » 23.06.2006 (Пт) 1:04

Ну жутко примитивный метод:
Таймер.
GetcursorPos и SetCursorPos туда же. Это имеет обыкновение вызывать немедленно же событие MouseMove.
Если перед очередным срабатыванием таймера MouseMove не приходил, значит курсор вне иконки трея. Ну а если еще недавно он там был, надо звать MouseLeave.

Конечно идея не без недостатков, но работать, думаю, будет.

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 23.06.2006 (Пт) 20:28

2VT велосипед не нада изобретать, для этого существует TrackMouseEvent, на уровни формы это просто, а вот класса я ни-ни :roll:
On Fatal Error Resume Next


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62

    TopList