|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
Иконка приложения когда в трее. Хочу чтоб в примечании (Tooltip) 1) большая иконка слева 32х32 либо даже 48х48 2) текст крупным шрифтом сверху (отличается от цвета нижнего текста) 3) текст мелким шрифтом снизу Подозреваю что на XP большая картинка точно не поддерживается, насчет остального не уверен. Такие Tooltip отдельно рисовать умею. Напр. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Но речь идет именно о Shell_NotifyIcon. Думаю там встроенный механизм. Примеры чего хочу (глядя на висту, в трее): примечание к иконке "сеть" примечание к иконке "аудио/громкость..." примечание к иконке "дата время" Идеи, примеры? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 20:51 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
Боюсь я неправильно сформулировал желания. "Ballon Notification" я сделал, Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
это интересно и нужно конечно но это не то: Речь идет о статическом ToolTip когда возишь по иконке мышкой (без крестиков и "указателей") Попробую пояснить картинкой. Хотя бы понять что это такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 00:52 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
нет win7, но с висты есть %NIIF_LARGE_ICON - не это? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 08:31 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
_Дмит_нет win7, но с висты есть %NIIF_LARGE_ICON - не это? NIIF_LARGE_ICON -это для картинки "Ballon Notification" Копать думаю надо в сторону NOTIFYICON_VERSION_4 и In addition to those messages, as of Windows Vista (Shell32.dll version 6.0.6), if a user passes the mouse pointer over an icon with which a balloon notification is associated, the Windows Vista Shell also adds the following messages: •NIN_POPUPOPEN. Sent when the user hovers the cursor over an icon to indicate that the richer pop-up UI should be used in place of a standard textual tooltip. •NIN_POPUPCLOSE. Sent when a cursor no longer hovers over an icon to indicate that the rich pop-up UI should be closed. Shell_NotifyIcon function Return value Type: BOOL Returns TRUE if successful, or FALSE otherwise. If dwMessage is set to NIM_SETVERSION, the function returns TRUE if the version was successfully changed, or FALSE if the requested version is not supported. У меня пока Shell_NotifyIcon function возвращает false, пытаюсь высечь TRUE, а затем NIN_POPUPOPEN/NIN_POPUPCLOSE Картинки внизу, это скорее всего Normally, when uVersion is set to NOTIFYICON_VERSION_4, the standard tooltip is suppressed and can be replaced by the application-drawn, pop-up UI . ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 09:47 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
Ну, немного продвинулся (в соответствии с вышеизложенными идеями). Топтался потому что ошибся с константой NIM_SETVERSION. Вот этот код Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Возвращает на Висте TRUE для NIM_SETVERSION При этом 1) Стандартный Tooltip (который .szTip) не отображается 2) Активируются Код: vbnet 1. 2.
3) И начинает работать след. код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Дело осталось за "малым". richer pop-up UI should be Судя по внешнему виду (образцы чего хочу на картинке внизу), можно использовать Tooltip -независимый. С картинкой, титлом и текстом. При этом он должен быть без ballon-указателя. Выводить его видимо надо прямо на Screen, Вопрос "КУДА" -ответ использовать GET_X_LPARAM и GET_Y_LPARAM, ну или в зависимости от WhereTaskbar (не обязательно внизу) пихать его в угол. Я пока не могу такой тултип вывести (никакой пока). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 15:54 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
То чего я хочу, называется Rich tooltips Описания немного есть здесь: Notification Area Еще это называется Cool Tray Icon Tooltip С другой стороны, я сейчас взглянул как обстоят дела на Win7 и Win8 и понял, что там такие Rich tooltips не практикуются, т.е. штатные иконки в трее используют обычные Tooltip, а то что я пытаюсь достичь характерно только для Висты. Ну, некот. в 2-3 строчки. Но этого как раз достичь несложно Код: vbnet 1.
Вообще конечно обидно бросить потому что половину работы я сделал. NIN_POPUPOPEN/CLOSE на Win7/8 также работать будет. Осталось то собственно только нарисовать этот the application-drawn, pop-up UI (предполагаю независимый Tooltip). Только вот никто не подсказывает как, Вывести Tooltip на Screen (X,Y -известны) из кода. обидно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 22:25 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
А еще тут эту проблему решали и вроде решили: 3336970 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 23:50 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
AntonariyА еще тут эту проблему решали и вроде решили: 3336970 Ошибся темой, это сюда ответ: 14334116 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 23:51 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
AntonariyОшибся темой, это сюда ответ: 14334116 Ничего страшного. Та тема создана ради этой, чтоб быстрее заметили подвопрос. Я пока копаю в сторону How to Implement Tracking Tooltips Showing a tooltip at any time Т.е. хочу решить подзадачу #1: нажали кнопку и тултип сразу появился в заданном (да хоть в любом для начала) месте родительского hwnd (без мышиной возни). Приложенный класс cTooltip явно под это не заточен. Второй подзадачей будет. Как вывести его на SCREEN а не в textbox.hwnd или listview.hwnd - (если я конечно правильно понимаю что родителем должен быть screen.hwnd(?) -см. на нижние картинки на рисунке). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2013, 00:08 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
Дмитрий77 нажали кнопку и тултип сразу появился ...(да хоть в любом для начала) месте... (без мышиной возни). Как вывести его на SCREEN а не в textbox.hwnd или listview.hwnd - (если я конечно правильно понимаю что родителем должен быть screen.hwnd(?) -см. на нижние картинки на рисунке). Кажись убил еще двух зайцев: Если чуть испохабить код класса: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
то код Код: vbnet 1. 2. 3. 4. 5. 6. 7.
выводит неубираемый Tooltip аккурат в верхний левый угол ЭКРАНА Код Код: vbnet 1. 2. 3.
Убивает Tooltip Результат прилагаю на картинке. Нетрудно понять, что этот тултип - то же самое что на моих нижних "вистовских картинках" (размер иконки, цвет и размер шрифтов на висте причешутся). Т.е. по сути осталось присунуть эту штуку ПО МЕСТУ (GET_X_LPARAM, GET_Y_LPARAM) и подвязать Create/Destroy к NIN_POPUPOPEN/NIN_POPUPCLOSE ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2013, 01:12 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
Дмитрий77Т.е. по сути осталось присунуть эту штуку ПО МЕСТУ (GET_X_LPARAM, GET_Y_LPARAM) ... Муторно, но сделал (были коды про TaskBar), с TaskBar надо играться Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2013, 05:54 |
|
Shell_NotifyIcon + Ballon(?) Tooltip
|
|||
---|---|---|---|
#18+
Ну, собственно все почти получилось. Осталось 2 вопроса: 1. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Не хочет делать иконку 48х48 , форматирует ее под 32х32 максимум. Что-то где-то упустил? На картинке "Volume" иконка явно больше чем 32. 2. Проблема проиллюстрирована на картинке ниже. Если делаю "standard" (верхние картинки), то что-то он стиль не соблюдает. Шрифт не тот и лепит в кучу. Если делаю OR TTS_BALLON (это единственное отличие) то стиль как надо (шрифты и размеры), но самого BALLON (то бишь указывающая стрелка) мне как раз и не надо. Как-то стилями выправить можно? Не занимаясь установкой шрифтов и геометрией окна вручную? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2013, 06:08 |
|
|
start [/forum/topic.php?fid=60&msg=38271145&tid=2156958]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 258ms |
total: | 399ms |
0 / 0 |