Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как сделать подсказку для List Box?


Автор: Mastkir 7.6.2006, 12:29
Здравствуйте.
Есть List Box. На нем я вывожу разные строки.
Как сделать, чтобы при наведении на строку, рядом появлялась подсказка к данной строке?
Спасибо smile  

Автор: Earnest 7.6.2006, 14:03
Под Виндоус программируешь? Тогда используй Tooltip Control. 
Какой компилятор\библиотеку используешь? 

Автор: Mastkir 7.6.2006, 14:22
Использую VC++ 6.0.
Пока разобраться с ToolTipCtrl не получается.
 smile  

Автор: Earnest 7.6.2006, 19:00
Один из вариантов (для MFC):
1) Определи свой класс на основе ListBox
2) Вызови в конструкторе EnableToolTips();
3) переопредели вирт. метод OnToolHitTest, в котором определяй над какой строкой мышь, и заполни структуру TOOLINFO, примерно так:
Код

    pTI->hwnd = m_hWnd;
    pTI->uId = <номер строки>;
    pTI->uFlags &= ~TTF_IDISHWND;
    pTI->rect = <прямоугольник строки>;
    pTI->lpszText = _tcsdup( <строка> );    // MFC уничтожит

Если хочешь InPlace tooltip, тогда лучше делать свой экземпляр, а не общим пользоваться.
Тогда не нужно EnableTooltips\OnToolHitTest, а PreTranslate вроде нужно вызывать RelayEvent.
Но лучше поищи хорошенько в MSDN, я видела там примеры. И на codeproject тоже. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)