Проблема с подсказкой (hint)
Если кто-нибудь знает, подскажите как обойти это ограничение или как сделать подсказку для икноки в системном трее неограниченной длины?
Народ, тут такой глюк приключился. Оказалось, что в качестве подсказки Hint можно ввести ограниченный текст. То есть я пытался ввести очень длинный текст, но при этом, во время "всплывания" отобразилась лишь его треть. :(
Если кто-нибудь знает, подскажите как обойти это ограничение или как сделать подсказку для икноки в системном трее неограниченной длины?
Решение не сложно - создавай окошко подскзки сам. Вот.
Решение не сложно - создавай окошко подскзки сам.
Можно. Но для этого мне нужно как минимум узнать координаты иконки в системном трее. Как эти координаты вычислить?
Или может есть другой способ обойти ограничение в 64 символа для подсказки для иконки в системном трее?
Или может есть другой способ обойти ограничение в 64 символа для подсказки для иконки в системном трее?
Иконка сетевого подключения выводит больше чем 64 символов. Может потому, что подсказку выводить не в одну строку. Попробуй разбить строку не несколько подстрок символом \n.
Попробуй разбить строку не несколько подстрок символом
С этого всё и началось. Не хочет он ни в одну ни в несколько строк делать. На 64 символе обрубает.
А ты всё же пересчитай количество символов в иконке сетевого подключения. Я обе посчитал - оба варианта помещаются в символов 40 - 60...
Ограничение в 64 символа имеет сама структура NOTIFYICONDATA... потому если видишь большее количество символов - значит это сделано "в обход"...
Тогда другой вопрос в ту же тему.
Как "добраться" до процедуру OnMouseOver для компонента "antTaskbarIcon" от "UtilMind"?
С этого всё и началось. Не хочет он ни в одну ни в несколько строк делать. На 64 символе обрубает.
А ты всё же пересчитай количество символов в иконке сетевого подключения. Я обе посчитал - оба варианта помещаются в символов 40 - 60...
Ограничение в 64 символа имеет сама структура NOTIFYICONDATA... потому если видишь большее количество символов - значит это сделано "в обход"...
80 символов.
На codeproject.com есть пару компонент на tooltips, но они на Visual C. Должен быть и на Buildere где-то.
80 символов.
Маловато. Мне нужно 150-200 минимум...
Маловато. Мне нужно 150-200 минимум...
Это иконка сетевого подключения выводит 80 символов. На codeproject.com, есть статься, как определить положение иконки в tray-e.
Народ, тут такой глюк приключился. Оказалось, что в качестве подсказки Hint можно ввести ограниченный текст. То есть я пытался ввести очень длинный текст, но при этом, во время "всплывания" отобразилась лишь его треть. :(
Если кто-нибудь знает, подскажите как обойти это ограничение или как сделать подсказку для икноки в системном трее неограниченной длины?
Для версии 5 и выше shell32.dll размер простых хинтов 128 символов. Что касается всплывающих Ballon Tooltips, их можно использовать в Win2000 и выше. Макс. длина надписи на них - 256 символов.
Для Shell_NotifyIcon можно использовать след. структуру:
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
TCHAR szTip[128];
DWORD dwState;
DWORD dwStateMask;
TCHAR szInfo[256];
union {
UINT uTimeout;
UINT uVersion;
};
TCHAR szInfoTitle[64];
DWORD dwInfoFlags;
GUID guidItem;
} NOTIFYICONDATA, *PNOTIFYICONDATA;
Подробнее - в MSDN: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/structures/notifyicondata.asp
Кстати там ошибка в описании структуры NOTIFYICONDATA.
Для версии 5 и выше shell32.dll размер простых хинтов 128 символов.
У меня Borland C++ Builder 5. система Windows XP SP1 - и ограничение в 64 символа... хотя шелл32 у меня свежий... и ещё надо учитывать работу программы на осях 2000 и ХР. :(
Пытался использовать компонент TCoolTrayIcon (самый свежий). Так он при компиляции никаких ошибок не выдаёт, зато при старте программы - Access Violation и всё тут :( а ведь у этого компонента есть всё чтобы писать любой длины подсказки. Не подскажешь, как от этого access vioaltion`а избавиться
p.s.: билдер у меня свежий, и единственные установленные компоненты - TCoolTrayIcon и antTaskbarIcon. (причём ошибка выдавалась даже тогда, когда antTaskbarIcon ещё не был установлен)
У меня Borland C++ Builder 5. система Windows XP SP1 - и ограничение в 64 символа... хотя шелл32 у меня свежий... и ещё надо учитывать работу программы на осях 2000 и ХР. :(
Пытался использовать компонент TCoolTrayIcon (самый свежий). Так он при компиляции никаких ошибок не выдаёт, зато при старте программы - Access Violation и всё тут :( а ведь у этого компонента есть всё чтобы писать любой длины подсказки. Не подскажешь, как от этого access vioaltion`а избавиться
p.s.: билдер у меня свежий, и единственные установленные компоненты - TCoolTrayIcon и antTaskbarIcon. (причём ошибка выдавалась даже тогда, когда antTaskbarIcon ещё не был установлен)
У тебя на жестком диске, в папке где установлен борладн есть директория которая называется EXAMPLES - что в переводе с буржуйского на русский значит ПРИМЕРЫ - и там мой юный друг ты можешь обнаружить весьма много любопытного и интересного. В часности в поддиректории App - имеется поддиректория TrayIcon - в кторой находится проект, в котором подробно показано - как обрабатывать события мыши над иконкой приложения в трее. Как запихнуть ее туды. И как убрать отедова. И никакие Access violation'ы по ночам тревожить тебя не будут.