Главная страница
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.034 c
15-1143124741
ZeFiR
2006-03-23 17:39
2006.04.16
Красиво, правда?


15-1143442543
NightLord
2006-03-27 10:55
2006.04.16
Сноведения


8-1132141916
Syrnik
2005-11-16 14:51
2006.04.16
BT848 - захват с нескольких входов в DSPack


1-1142245630
API
2006-03-13 13:27
2006.04.16
TComboBox, высота выпадающего списка при изменении Items


2-1143629509
alk
2006-03-29 14:51
2006.04.16
Посылка параметров из клиента DCOM к серверу