C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
свернуть в трей при запуске, запуск в трее
kea
Отправлено: 02.10.2006, 08:27


Станционный диспетчер

Группа: Участник
Сообщений: 80



Здравствуйте! Как сделать так, чтобы приложение после запуска исполняемого файла оказывалась сразу в трее (запускалось в трее). Сворачивание в трей реализовано как в примере, найденном на страницах форума.
AVC
Отправлено: 02.10.2006, 10:45


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE (kea @ 02.10.2006, 07:27)
Как сделать так, чтобы приложение после запуска исполняемого файла оказывалась сразу в трее

Так и делать. Сразу после запуска осаживать приложение в трее. smile.gif

Это можно сделать, например, при первом рисовании главной формы.
Но есть одна проблема — если приложение запускается минимизированным это событие не происходит. Поэтому лучше использовать свой обработчик WndProc главного окна.

Да, и не забудьте почаще гасить окно приложения. Именно оно располагается в taskbar.
kea
Отправлено: 02.10.2006, 15:25


Станционный диспетчер

Группа: Участник
Сообщений: 80



Здравствуйте!
Приведите, пожалуйста, кусок кода)))
AVC
Отправлено: 03.10.2006, 11:15


Ветеран

Группа: Модератор
Сообщений: 1583



Я очень далеко от своего рабочего компьютера, но можете посмотреть тут Как сделать, чтобы окно пр. было свернуто в трей ?, .... TBarDemo там много разного в том числе и про трей.
kea
Отправлено: 03.10.2006, 16:27


Станционный диспетчер

Группа: Участник
Сообщений: 80



Здравствуйте! Как раз по мотивам этой статьи (пример с компонентом TrayIcon) у меня возник вышеобозначенный вопрос.
AVC
Отправлено: 04.10.2006, 11:24


Ветеран

Группа: Модератор
Сообщений: 1583



Таким образом мы вернулись к началу. smile.gif
QUOTE

Это можно сделать, например, при первом рисовании главной формы.

Примерно так:
в Forma OnPaint
if (FIsFirstPaint) Application->Minimize();

QUOTE

Но есть одна проблема — если приложение запускается минимизированным это событие не происходит. Поэтому лучше использовать свой обработчик WndProc главного окна.

Вариант решения для этого и предыдущего случая приведен в TBarDemo.rar методы
void __fastcall TF_List::FormPaint (TObject *Sender)
void __fastcall TF_List::WndProc (Messages::TMessage &Message)
(Сейчас просмотрел этот пример еще раз — там допущена одна неточность: иконку в трее нужно создавать конечно не в OnPaint а, например, в одном из конструкторов формы)
Gedeon
Отправлено: 04.10.2006, 12:14


Ветеран

Группа: Модератор
Сообщений: 1742



Я, если надо свернуть форму в трей сразу предпочитаю ему в конструкторе делать PostMessage(...) с сообщением минимизации.

Вернуться в Вопросы программирования в C++Builder