![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| dark |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 26.9.2003 Репутация: нет Всего: нет |
Подскажите код, который бы при закрытие окна сворачивал бы его в системный трей.
|
|||
|
||||
| NULL |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 22.8.2003 Репутация: нет Всего: нет |
|
|||
|
||||
| NULL |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 22.8.2003 Репутация: нет Всего: нет |
там в конце допиши еще
AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE); |
|||
|
||||
| dark |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 26.9.2003 Репутация: нет Всего: нет |
Я воспользовался твоим кодом NULL но иконки не вижу. В момент запуска появляется место для иконки и тут же пропадает. К тому же это код для VC а я пишу в BIlder. Может в этом причина?
|
|||
|
||||
| NULL |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 22.8.2003 Репутация: нет Всего: нет |
dark, в этом причина наверно, у меня все работает. Код апишный вроде должно и в билдере и в делфи работать.
nid.hIcon=m_hIcon; у тя может в m_hIcon ниче нет. |
|||
|
||||
| NULL |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 22.8.2003 Репутация: нет Всего: нет |
dark, или попробуй в конце не ставить ::DestroyIcon(nid.hIcon);
|
|||
|
||||
| dark |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 26.9.2003 Репутация: нет Всего: нет |
А как добавить в m_hIcon иконку. Разве не иконка формы должна высвечиваться?
|
|||
|
||||
| dark |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 26.9.2003 Репутация: нет Всего: нет |
Отсутствие ::DestroyIcon(nid.hIcon) не помогает.
|
|||
|
||||
| Ars |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 28.8.2003 Где: Московская обл. Репутация: 2 Всего: 2 |
Если OnClose отрабатывает для главного окна, то приложение после этого просто закрывается. Для того, чтобы выполнить сабж, нужно отлавливать WM_SYSCOMMAND с WParam==SC_CLOSE и в обработчике этого дела прятать окно Form->Visible=false; Ну и, конечно, создавать TrayIcon. В Builder'е есть соответствующий одноименный компонент, правда сыроватый, имхо -------------------- Есть многое на свете, друг Горацио, С чем очень долго можно прое..! |
|||
|
||||
| NULL |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 22.8.2003 Репутация: нет Всего: нет |
Ars, нет не закроется //CDialog::OnClose(); покрайней мере в VC.
и если компонент есть, то мой код поидее вообще не нужен |
|||
|
||||
| dark |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 26.9.2003 Репутация: нет Всего: нет |
Ars иконка пропадает даже если этот код вставить в момент создания окна.
m_hIcon - должен указывать на файл иконки или здесь должно быть чтото другое. |
|||
|
||||
| Ars |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 28.8.2003 Где: Московская обл. Репутация: 2 Всего: 2 |
Дык в Билдере же dark ваяет
Посмотрел хелп про OnClose event и выяснилось, что и отлавливать то ничего не надо: в обработчик передается ссылка Action, изменяя значение которой, можно управлять исходом события OnClose, в т.ч. можно и спрятать окно без его закрытия. Там и надо вставлять код для TrayIcon Это сообщение отредактировал(а) Ars - 3.10.2003, 09:54 -------------------- Есть многое на свете, друг Горацио, С чем очень долго можно прое..! |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Исчезает небось, при наведении на неё мышкой. Это из-за того, что сообщения из tray не обрабатываются.
dark, tray автоматически ничего не делает. Он только рисует твою иконку и посылает потом тебе сообщения о том, что мышь навели на неё, что кнопу нажали левую, правую и т.д. А ты должен эти сообщения обрабатывать. Иначе оболочка решит, что иконка ничейная, и что приложение, создавшее её, уже приказало долго жить. |
|||
|
||||
| dark |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 26.9.2003 Репутация: нет Всего: нет |
А как это сделать? Какие события надо обработать. Код можно выложить?
|
|||
|
||||
| Ars |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 28.8.2003 Где: Московская обл. Репутация: 2 Всего: 2 |
RAN
Исчезает, когда создавшее приложение закрылось, не удалив TrayIcon -------------------- Есть многое на свете, друг Горацио, С чем очень долго можно прое..! |
|||
|
||||
| Ars |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 28.8.2003 Где: Московская обл. Репутация: 2 Всего: 2 |
В Билдере, начиная с 3-го, в закладке Samples лежит компонент TrayIcon. Его и юзай - никакого гимора
Можно и так, но инициализировать все ручками придется:
-------------------- Есть многое на свете, друг Горацио, С чем очень долго можно прое..! |
|||
|
||||
| dark |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 26.9.2003 Репутация: нет Всего: нет |
Я вставил данный код не при закрытие приложения, а при его создании.
Само приложение не закрывается, просто форма становится невидимой. Над сделать так, что кокда пользователь счелкает мышкой по иконки оно снова распахиволось. |
|||
|
||||
| dark |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 26.9.2003 Репутация: нет Всего: нет |
Я разобрался, большое спасибо Ars и NULL
|
|||
|
||||
| gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: нет Всего: 22 |
На билдере всё очень просто. Для работы с систреем есть компонент TTrayIcon на вкладке Samples.
Потом на событие OnCloseQuery главного окна приложения пишешь код:
-------------------- С уважением. Gray. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |