Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Внизполучение сообщения от иконки в трее Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c