Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

получение сообщения от иконки в трее   Найти похожие ветки 

 
boobl ©   (2006-01-29 06:31) [0]

Перерыл весь форум, нашёл несколько примеров того, как поместить иконку в трей. в том же примере, кстати, можно было получить сообщение о нажатии мышкой по иконке, но это делалось с помощью введения своей функции WndProc для главной формы.
У меня в приложении уже есть обработчик системных сообщений, который я регистрировал вот так:
  Application.OnMessage := appMessage;

когда я сувал иконку в трей, в FIconData я писал
  FIconData.Wnd := Application.Handle;
  FIconData.CallbackMessage := WM_USER + 666;

флаги заполнял соответствующим способом, но appMessage не получает сообщения WM_USER+666!
чего делать?


 
Набережных С. ©   (2006-01-29 11:24) [1]

В Application.OnMessage попадают только те сообщения, которые были поставлены в асинхронную очередь потока. А в эту очередь попадают только те, которые отправлены асинхронным способом - PostMessage и т.п. Ну а трэй, судя по всему, использует для отправки SendMessage, вот и нету их в твоем обработчике. Если так уж хочется использовать окно Application, то можно, как вариант, поставить локальный хук.


 
boobl ©   (2006-01-29 19:47) [2]

Спасибо, в связи с этим вопрос: если я поставлю свой WndProc для главной формы это не чревато тем что я не буду обрабатывать сообщения которые приходят этой самой форме?


 
Набережных С. ©   (2006-01-29 21:04) [3]


> boobl ©   (29.01.06 19:47) [2]

Обрабатываться будут, если не будешь забывать вызывать родную процедуру для тех сообщений, которые сам не обработаешь.

Но надо учитывать, что в некоторых случаях форма, как и другие потомки TWinControl, может пересоздавать свое окно. Это случается не часто, но все-таки бывает, например, при изменения стиля. А в этом случае у формы поменяется HWND и сообщения перестанут до нее доходить.

Можно, конечно, при этом переустанавливать иконку в трее, но проще будет создать отдельное окно с помощью AllocateHwnd. Только не спрашивай, где она находится, я тебя умоляю:)



Страницы: 1 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
15-1143027612
Дмитрий_177
2006-03-22 14:40
2006.04.16
Шрифт электронных часов


2-1143812478
SilentDon
2006-03-31 17:41
2006.04.16
Ошибка при вызове SetLength применительно к динамическим массивам


6-1136389151
oleggar
2006-01-04 18:39
2006.04.16
IP->compname


4-1138463324
maxim161
2006-01-28 18:48
2006.04.16
Слежение за файловой системой


2-1143886115
Raul
2006-04-01 14:08
2006.04.16
Как сделать индекс у объекта TImage переменной??