Главная страница
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.052 c
2-1143534311
Sw
2006-03-28 12:25
2006.04.16
Путь к БД


1-1142254492
Nibbler
2006-03-13 15:54
2006.04.16
Работа с содержимым ScrollBox


2-1144137890
Dyakon_Frost
2006-04-04 12:04
2006.04.16
Сколько раз встречается каждое слово в предложении!


4-1138703983
Kolan
2006-01-31 13:39
2006.04.16
Вызов API диалога настройки Com порта.


2-1143822213
fast2
2006-03-31 20:23
2006.04.16
Как с помощ., SQL найти колличество записей, значения которых...