listbox и ToolTipСtrl
От: Rpt  
Дата: 02.03.05 08:13
Оценка:
есть listbox с включенным вертикальным скроллом
На каждую строку листбокса — назначается всплывающая подсказка
(беру рект строки листбокса и привязываю подсказку (CToolTip) к этим координатам)

при прокрутке скрола — строки сдвигаются вверх или вниз, а
КАК СДЕЛАТЬ ЧТОБ ЗА НИМИ СДВИГАЛИСЬ ПОДСКАЗКИ?
и соответствовали каждая — своей строке.

Пытался поймать сообщения скролбара — но не получилось,
наверное потому что он встроен в лист бокс...
подскажите как?
Re: listbox и ToolTipСtrl
От: Pavel Dvorkin Россия  
Дата: 02.03.05 10:28
Оценка: 1 (1)
Здравствуйте, Rpt, Вы писали:

Rpt>Пытался поймать сообщения скролбара — но не получилось,

Rpt>наверное потому что он встроен в лист бокс...
Rpt>подскажите как?

Сабклассить листбокс и ловить WM_VSCROLL.
With best regards
Pavel Dvorkin
Re[2]: listbox и ToolTipСtrl
От: Rpt  
Дата: 02.03.05 12:13
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Сабклассить листбокс и ловить WM_VSCROLL.

Извините, но мне бы немного подробнее, я не из опытных
как поймать WM_VSCROLL я знаю, а как "Сабклассить листбокс" ?
Re[3]: listbox и ToolTipСtrl
От: SexMachine Украина www.is.svitonline.com/sashko1
Дата: 02.03.05 22:13
Оценка:
Здравствуйте, Rpt, Вы писали:

Rpt>Извините, но мне бы немного подробнее, я не из опытных

Rpt>как поймать WM_VSCROLL я знаю, а как "Сабклассить листбокс" ?

Если из неопытных, значит активно используем ClassWizard, верно ? Ну так вот, предположим есть у тебя некий диалог CMyDialog на котором лежит твой ListBox.

Правой кнопкой на списке класов->New Class Создаешь новый класс например "CTippedListBox", тип класса указываешь "MFC", а предка — CListBox.

В этом классе делаешь то что ты уже знаешь то есть ловишь WM_VSCROLL.
Теперь вернемся к визарду и твоему диалогу:
в редакторе ресурсов щелкаешь по листбоксу, и жмешь Ctrl+W — должен вызваться ClassWizard, и установить выбор объекта на твоем листбоксе. Переходишь на вкладку "Member variables" и добавляешь новую переменную
(внимание фокустипа CTippedListBox твоему листбоксу (Если ему уже назначена контролирующая переменная, ее придется предварительно удалить).
Вот и все дерзай.

P.S. Вышеописанное будет работать в MSVC 6.0
У кого-то варит голова, у кого-то — желудок...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.