Как Mree CTreeCtrl автоматически отображает подсказку, содержащую заголовок элемента, если весь заголовок в настоящее время не виден? - PullRequest
0 голосов
/ 17 декабря 2010

Фон http://msdn.microsoft.com/en-us/library/b17bescz(v=VS.90).aspx «Стиль TVS_NOTOOLTIPS отключает функцию автоматической подсказки инструментов для элементов управления в виде дерева. Эта функция автоматически отображает подсказку, содержащую заголовок элемента под курсором мыши, если весь заголовок в данный момент не отображается.»

Вопрос: Где находится эта функция по умолчанию [т.е. всякий раз, когда элемент обрезается, автоматически показывается всплывающая подсказка с заголовком] CTreeCtrl, фактически реализованная в коде MFC (например, какой файл)?

Спасибо

Ответы [ 2 ]

1 голос
/ 17 декабря 2010

Всплывающая подсказка присуща Win32 Tree Control. CTreeCtrl - это простая оболочка. Единственное место, где можно найти код для этого от Microsoft.

0 голосов
/ 21 декабря 2010

Это должно быть относительно просто реализовать.

Захватить движение мыши в treectrl (OnMouseMove)

  1. Получить текущую позицию курсора
  2. Получить элемент под курсором (treectrl.HitTest)
  3. Получить прямоугольник отображения элемента (treectrl.GetItemRect)
  4. Получить прямоугольник отображения treectrl (treectrl.GetClientRect)
  5. Если правая сторона прямоугольника отображения элемента> отображение treectrlrect -> SHOW TOOLTIP AT (item.left, item.top)
  6. Если левая сторона отображения элемента rect SHOW TOOLTIP AT (treectrl.left, item.top)

Не знаю, поможет ли это.Я делаю очень похожую вещь в приложении MFC, чтобы выделить специалиста.

...