Lebans's ToolTip.

__Michelle
Дата: 14.12.2015 18:30:06
Здравствуйте!

Пробую применить Lebans's ToolTip http://www.lebans.com/tooltip.htm в ленточной форме.
Со следующими изменениями.
Используется только для контролов области данных,
появление всплывающей подсказки выполняется по DblClick,
текст и заголовок подсказки зависят от текущей записи формы.
Цвета текста и фона подсказки свои.
Добавлено обозначение типа подсказки - информационная.
Все это получилось.

Но не могу сделать так, чтобы подсказка не исчезала с экрана автоматически:
- по истечении времени задержки;
- при выходе указателя мыши из границ текущего контрола.


Пробовала разными способами.
1. Увеличение DelayTime.
Выяснилось (опытным путем, информации не нашла), что максимально возможное значение 30000 (30 сек.)
2. Увеличение RECT в TOOLINFO на 567 (1 см) в каждую сторону, .RECT.Left, .RECT.Right, .RECT.Top, .RECT.Bottom.
Ошибки нет. Но и никакого результата.
3. Вот здесь http://stackoverflow.com/questions/17063109/ctooltipctrl-with-ttf-track-flag-wont-disappear-setdelaytime-doesnt-work/17064901 написано,
что подсказка не исчезает при использовании флага TTF_TRACK (&H20).
Сделала TOOLINFO.uFlags = TTF_TRACK.
Тоже никакого результата.

Возможна ли реализация этих моих задумок?
Если да, то как?
Помогите, пожалуйста.

Понимаю, что после решения этого у меня может возникнуть вопрос "А как теперь убрать подсказку?")))
Но это уже потом...
guest_rusimport
Дата: 14.12.2015 22:13:56
__Michelle,
вот в этом топике есть ответ на ваш вопрос , только повнимательней смотрите , проверял - всё работает как надо :)
http://www.sql.ru/forum/356610-1/programmnyy-tooltip
__Michelle
Дата: 14.12.2015 22:59:26
guest_rusimport,
Спасибо. Попытаюсь.
__Michelle
Дата: 15.12.2015 14:52:34
guest_rusimport,

Смотрела-смотрела...
Пока особых результатов нет.
Сначала заметила отсутствие одного параметра в CreateWindowEx в теме по ссылке,
но потом обнаружила, что дальше в теме об этом пишут.
Плохо то, что у меня нет полноценных описаний функций и констант, приходится в основном догадываться.

На что же обратить внимание?
Может, на TTM_TRACKPOSITION и TTM_TRACKACTIVATE?
guest_rusimport
Дата: 15.12.2015 15:43:59
__Michelle,

накидал на скорую руку по идеям из вышеприведенной ссылки ... не это интересовало?
__Michelle
Дата: 15.12.2015 15:57:40
guest_rusimport,

Да! Именно это!
Но это не Лебанс.
Сейчас буду разбираться.
Спасибо!!!

Попробую приспособить к своим обстоятельствам - в ленточной по DblClick,
чтобы всплывала только для текущей записи, а то текст будет неверный для не текущих.

Вы просто маг и волшебник!!!
__Michelle
Дата: 15.12.2015 21:00:08
Все. Получилось прекрасно.
По DblClick в любом поле области данных любой записи
ToolTip открывается рядом с этим полем,
и только при потере полем фокуса скрывается.
Пользователи в восторге - информации много, 30 сек не хватало.

Еще раз большое спасибо guest_rusimport!!!
guest_rusimport
Дата: 15.12.2015 22:33:40
__Michelle,
тут, на форуме "покопаться" хорошенько, чего только не найдешь :)
userTwo
Дата: 31.10.2019 14:47:13
Подскажите, пожалуйста, как переделать код чтобы всплывающее окно появлялось по наведению или клику (не принципиально) на картинку?
оригинал 18563444 от guest_rusimport + картинка
userTwo
Дата: 01.11.2019 18:19:53
В данном примере есть шаг с установкой фокуса на текстбоксе, но с картинкой так нельзя, соответственно возникает ошибка на шаге:
Call imgInfo.SetFocus

Немного не понятно, почему вообще требуется устанавливать фокус на контроле, можно же наверное просто определить координаты контрола под курсром и тогда без разницы над каким контролом отображать всплывающее окно?