Toolbar\Coolbar VS Tray

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Toolbar\Coolbar VS Tray

Сообщение Gigahard » 16.03.2006 (Чт) 12:05

Возникла проблема с обработкой щелчков на трей иконке программы.
Причем глюк пристраннейший.
В IDE его нет и он проявляется только в скомпилированом exeшнике.
Суть глюка вот в чем...
Когда я сворачиваю форму, то ставлю в трей иконку, а саму форму скрываю. Потом по двойному нажатию на трей иконке, сама иконка удаляется, а форма становится видимой.
Казалось бы все просто. Я это делал уже не в одной вроде бы программе, но вот наткнулся на странный глюк. Если форму сворачивать из нормального состояния (windowState=vbNormal), то все работает как нужно, а вот если сворачивать форму из развернутого состояния (windowState=vbMaximized), то значок в трее вообще перестает реагировать на события мыши.
Причем этот глюк проявляется при присутствии на форме контролов ToolBar или CoolBar. С пустой формой все опять же работает нормально.

Вот и хочу спросить, как это обойти? Может что неправильно в коде для трея? Хотя вроде кусок этот уже донельзя перепахан...
Единственный извращенский способ обхода этого глюка, заключается в предварительном изменении windowState из Maximized в Normal, но что то это как то по кривому...

Глючный пример прилагается.

Хелп! :D
Вложения
Глюк.rar
Собственно пример глюка. В отладчике все работает! Не работает только в скомпилированом виде!
(3.14 Кб) Скачиваний: 59
Старый глюк лучше новых двух!

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

Сообщение alibek » 16.03.2006 (Чт) 12:06

Coolbar имеет столько непредсказуемых эффектов, что я стараюсь его не использовать.
Lasciate ogni speranza, voi ch'entrate.

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 16.03.2006 (Чт) 17:54

Ну CoolBar я решил попробовать от безисходности, т.к. изначально глючило с обычным ToolBar. Но похоже, что эти два контрола вызывают один и тот же глюк...
Только вопрос, глюк ли это контролов или кривой код работы с треем? Вроде как данный код и в MSDN дается и в API-Guide...
Даже не знаю что теперь делать... Неужели никто с данной проблемой не сталкивался? Ведь соседство ToolBar и значка в трее не редкость...
Мне еще интересно, данная проблема только у меня на компе или нет?
Старый глюк лучше новых двух!

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

Сообщение Денис » 29.11.2006 (Ср) 14:21

Твоя проблема в том, что у тебя иконка в трее привязана к твоей форме. Сделай отдельную форму для иконки. Запускай ее из мэйна, а свою форму из формы-иконки.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

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

Сообщение Денис » 29.11.2006 (Ср) 14:24

alibek

А что ты используешь вместо coolbar, если не секрет. И, раз уж на то пошло... А как сделать, чтобы при перетаскивании вниз toolbar из coolbara выскакивал в отдельное окно?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


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

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

Сейчас этот форум просматривают: Mail.ru [бот], Yandex-бот и гости: 11

    TopList