56 / 52 / 21
Регистрация: 01.01.2012
Сообщений: 347
|
|
1 | |
Работа с подсказками baloon hint13.07.2012, 00:09. Показов 4441. Ответов 42
Метки нет (Все метки)
Иногда над приложениями появляется ярлык подсказки (Например ярлык, появляющийся над пиктограммами в системном лотке (NOD32 - сообщение, свидетельствующее об устаревших базах и т.д.). Вопрос: существуют какие либо функции вызова этих окон, или программист их сам лепит?
0
|
13.07.2012, 00:09 | |
Ответы с готовыми решениями:
42
Неясный HINT [Hint] Unit1.pas(2910): Value assigned to 'a' never used Как убрать baloon "исправить неточность" на яндексМапе Меню с подсказками Поле ввода с подсказками |
Супер-модератор
|
|
07.04.2015, 00:16 | 21 |
, то отследить можно только нажатие на ссылку внутри балуна (которая создается текстом "Это <a>ссылка</a>" со включенным флагом TTF_PARSELINKS). Для этого нужно переопределить оконную функцию для окна, которое указано в поле hwnd структуры TOOLINFO, и ловить там WM_NOTIFY + TTN_LINKCLICK... Проверять сейчас негде, поэтому только теоретически.
0
|
07.04.2015, 11:52 | 24 | ||||||||||
Я вот сделал так
0
|
Супер-модератор
|
||||||
07.04.2015, 11:53 | 25 | |||||
Зачем? Подмени WindowProc для Edit1, именно он будет получать все нотификации от балуна.
1
|
07.04.2015, 12:37 | 26 | |||||
Сделал вот так вот, но почему-то ShowMessage() не появляется при нажатии на балун? Может я проверку не правильную делаю?
0
|
Супер-модератор
|
|
07.04.2015, 14:00 | 27 |
Нет. Просто предок получает лишь ограниченный список нотификаций: Tooltip Control Notifications, а не все возможные сообщения.
Можешь попробовать сабклассинг TOOLTIPS_CLASS (подмена его оконной функции через SetWindowLong(Ptr) + GWL(P)_WNDPROC), возможно это сработает, но я такого не делал никогда для этого класса. Для других - делал, в поиске есть немало примеров подмены оконной функции. Пробуй
0
|
07.04.2015, 14:51 | 28 | |||||
volvo, сделал вот так вот. Работает!!!!!!!!!!!
0
|
Супер-модератор
|
||||||
07.04.2015, 15:36 | 29 | |||||
Можно:
0
|
07.04.2015, 16:30 | 30 | |||||
volvo, наверно задам последний вопрос из этой темы.
У компонента TrayIcon есть свойство BalloonTimeout, которое устанвливает время задержки сообщения над иконкой вот код
Добавлено через 7 минут Или может быть можно какое-нить свойство написать, которое бы отвечало за время задержки?
0
|
Супер-модератор
|
|
07.04.2015, 16:42 | 31 |
Свойство написать нельзя, ибо это не VCL-компонент, а виндовый класс. А по поводу установки задержек - все, что можно: TTM_SETDELAYTIME, но тут нет того, что тебе нужно. Так что, похоже, без таймера-таки не обойдешься...
1
|
Супер-модератор
|
|
03.08.2015, 14:59 | 34 |
Нет. Можно отследить только тот момент, когда балун готов к тому, чтобы начать исчезновение, но не тот момент, когда он исчез. По крайней мере, стандартные уведомления подобного функционала не представляют.
1
|
Супер-модератор
|
|
03.08.2015, 15:39 | 36 |
В процитированном тобой коде это и делается. Когда баллун готов начать исчезать (сам по таймауту, или после нажатия пользователем на "крестик") - он высылает TTN_POP через WM_NOTIFY родительскому окну.
1
|
03.08.2015, 16:33 | 37 | |||||
Чё-то не особо получается
[bcc32 Error] Unit1.cpp(30): E2034 Cannot convert 'HICON__ *' to 'HWND__ *' Full parser context Unit1.cpp(23): parsing: _fastcall TForm1::TForm1(TComponent *) [bcc32 Error] Unit1.cpp(30): E2342 Type mismatch in parameter 'hWnd' (wanted 'HWND__ *', got 'HICON__ *') Full parser context Unit1.cpp(23): parsing: _fastcall TForm1::TForm1(TComponent *) [bcc32 Warning] Unit1.cpp(53): W8070 Function should return a value Full parser context Unit1.cpp(43): parsing: long __stdcall tray_new_wndproc(HWND__ *,unsigned int,unsigned int,long)
0
|
Супер-модератор
|
|
03.08.2015, 17:44 | 38 |
А почему TrayIcon->Handle, собственно? Обрабатывать-то WM_NOTIFY будет родительское окно, которое указано в TOOLINFO.hwnd, вот и укажи там this->Handle, и это же this->Handle - в SetWindowLong.
1
|
04.08.2015, 08:38 | 39 | |||||
volvo, сделал вот так вот
0
|
Супер-модератор
|
|
04.08.2015, 10:31 | 40 |
А можно привести полностью минимальный проект, который хотя бы компилируется, но не выполняет того, что должен выполнять? А то какие-то глухие телефоны получаются - в вышеприведенном куске кода ничего подобного созданию балуна в принципе нет, нет даже создания иконки в области уведомлений, а ты хочешь, чтобы отлавливалось исчезание балуна. А вдруг я сделаю показ иконки и балуна ПРАВИЛЬНО, и у меня твой код заработает, что тогда?
0
|
04.08.2015, 10:31 | |
04.08.2015, 10:31 | |
Помогаю со студенческими работами здесь
40
что случилось с трафиком и подсказками? ToolBar, кнопки с картинками и подсказками TextBox с подсказками по вводимым символам Флеш карта страны со всплывающими подсказками Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |