Рефреш трея

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Рефреш трея

Сообщение jangle » 22.01.2008 (Вт) 15:06

Вобщем моя программа висит в трее, когда выхожу из нее, иконка по прежнему отображается в трее, если подвести к ней курсор - она исчезает. Как обновить трей, чтобы она пропадала сразу?

Shell_NotifyIcon на дистрое трея вызывается:

Код: Выделить всё
Case %WM_DESTROY
          Shell_NotifyIcon %NIM_DELETE, ti     

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 22.01.2008 (Вт) 16:37

Исходник на vbstreets

http://www.vbstreets.ru/VB/Sources/66107.aspx
[/code]
В нашем деле главное ЛОГИКА.

косил косой косой косой.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 22.01.2008 (Вт) 16:52

Gemini писал(а):Исходник на vbstreets

http://www.vbstreets.ru/VB/Sources/66107.aspx
[/code]


тоже самое, что у меня, иконка после закрытия программы по прежнему висит в трее

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 23.01.2008 (Ср) 10:18

тоже самое, что у меня, иконка после закрытия программы по прежнему висит в трее
А перед завершением программы убрать иконку из трея ни как? :wink:
А я все практикую лечение травами...

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 23.01.2008 (Ср) 10:48

Twister писал(а):
тоже самое, что у меня, иконка после закрытия программы по прежнему висит в трее
А перед завершением программы убрать иконку из трея ни как? :wink:


Это я и делаю, см. мой первый пост:
Код: Выделить всё
Case %WM_DESTROY
          Shell_NotifyIcon %NIM_DELETE, ti     

_igor_
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 25.08.2007 (Сб) 14:00

Сообщение _igor_ » 23.01.2008 (Ср) 20:48

Кстати и у меня точно такая же проблема. :?

HiSER
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 04.07.2007 (Ср) 18:17

Сообщение HiSER » 24.01.2008 (Чт) 11:20

Всё отлично удаляется :!:
Вложения
TrayIcon.rar
(1.31 Кб) Скачиваний: 71

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 24.01.2008 (Чт) 11:39

Shell_NotifyIcon на дистрое трея вызывается:
Не вкурил, какое именно окно по WM_DESTROY выгружает иконку? Попробуй по WM_CLOSE - я так делал.
А вообще сложно что либо сказать. Может ti не валиден. Код нужен.
А я все практикую лечение травами...

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 24.01.2008 (Чт) 12:27

jangle, в case попадаешь? Стань туда бряком, посмотри id иконки
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 24.01.2008 (Чт) 12:54

BV писал(а):jangle, в case попадаешь? Стань туда бряком, посмотри id иконки


Востину ты как в воду глядел! :) Действительно в Case не попадал, понавешал до него хоткеев на все кнопки выхода, и по ним сваливался в процедуру EndProgram, где у меня всякая деиницилизация.
Вобщем переделал код так, на хоткеи выхода, навесил вызов DestroyWindow окна программы, и WM_DESTROY стал таки приходить, а от туда уже в EndProgramm.

Код: Выделить всё
      Case %WM_DESTROY
         Shell_NotifyIcon %NIM_DELETE, ti
         EndProgramm


p.s. Кстати говоря, переменная ti в CallBack функции обязательно должна быть Static, иначе иконка мз трея удаляться не будет.

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 24.01.2008 (Чт) 16:02

p.s. Кстати говоря, переменная ti в CallBack функции обязательно должна быть Static, иначе иконка мз трея удаляться не будет.

или глобальной, это как раз и так ясно ;-)
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 25.01.2008 (Пт) 16:24

Я так делал.
Код: Выделить всё
Private Sub Form_Load()
' Заносим иконку в трей и скрываем форму
TaskIcon1.Add Form1.Icon, "Моя программа"
Form1.Hide
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' Удаляем иконку из трея
TaskIcon1.Delete
End Sub
Главное, ребята, сердцем не стареть...

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 25.01.2008 (Пт) 16:32

Saturn.65 писал(а):Я так делал.
Код: Выделить всё
Private Sub Form_Load()
' Заносим иконку в трей и скрываем форму
TaskIcon1.Add Form1.Icon, "Моя программа"
Form1.Hide
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' Удаляем иконку из трея
TaskIcon1.Delete
End Sub

...где TaskIcon - самодельный контрол написанный (кем?)

А в этом топике обсуждаются проблемы написания функционала подобных контролов, классов и пр. Кароч, обдумывается то, что уже обдумано, изобретается велосипед.

Так что ответом на вопрос в этом топике с твоей стороны должен был быть не код, а ссылка на скачивание этого пресловутого "таскикон". Хотя он тоже никому и нафик не нужон, потому что в кирпичах лежит прекрасно работающий класс TrayIcon ...

Но больше всего возмущает, что топикстартером является jangle, с намеком на гениальных художников в подписи, который стесняется юзать вышеописанный класс.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 25.01.2008 (Пт) 16:50

Денис
а почему jangle ДОЛЖЕН использовать этот класс???
у меня для этого свой класс, например, и я даже не смотрю на другие подобные классы.

Вообщем ФУ на тебя!
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 25.01.2008 (Пт) 17:15

Igor_123
Почему, почему? Потому что у него в подписи такой намек. :roll:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 25.01.2008 (Пт) 17:35

Денис писал(а):Потому что у него в подписи такой намек.

Это вопрос или ответ на свои почему???

Мне, например, больше нравится о самых поездатых поездах, но я тебе не говорю ЧТО тебе нужно делать и в ответ ТЫ не говориш мне КУДА НУЖНО ИДТИ.
Понимаеш?
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 25.01.2008 (Пт) 17:56

Igor_123
Не а не понимаю :) Я не говорил Вам, что Вы должны, а чего нет, тем более не говорил jangle
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 25.01.2008 (Пт) 18:13

Не а не понимаю

Хорошо! Меня возмущает твое возмущение. У jangle могут быть свои причины не использовать этот класс. Например желание разобраться как оно работает, а не быть тупым копипастером. Поэтому твое замечание о том кто и что должен делать несколько раздражает.
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 26.01.2008 (Сб) 1:27

Денис писал(а):Но больше всего возмущает, что топикстартером является jangle, с намеком на гениальных художников в подписи, который стесняется юзать вышеописанный класс.


Кстати, я вообще на на VB пишу, так что мне этот класс - как рыбе зонтик. А вопрос, я задал в этом топике, потому, что здесь народу больше и есть вероятность, быстрее получить ответ :wink:


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

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

Сейчас этот форум просматривают: Google-бот и гости: 28

    TopList