0

背景http://msdn.microsoft.com/en-us/library/b17bescz(v=VS.90).aspx "TVS_NOTOOLTIPS 样式禁用了树形视图控件的自动工具提示功能。此功能自动显示工具提示,如果整个标题当前不可见,则包含鼠标光标下项目的标题。”

问题:在MFC 代码中实际实现的CTreeCtrl 的这个默认功能[即当项目被截断时,自动显示标题的工具提示] 在哪里(例如哪个文件)?

谢谢

4

2 回答 2

1

该工具提示是 Win32 树控件中固有的。CTreeCtrl 是一个简单的包装器。唯一可以找到代码的地方是 Microsoft。

于 2010-12-17T17:49:33.700 回答
0

实现这一点应该相对简单。

在 treectrl (OnMouseMove) 中捕获鼠标移动

  1. 获取当前光标位置
  2. 获取光标下的项目(treectrl.HitTest)
  3. 获取项目的显示矩形 (treectrl.GetItemRect)
  4. 获取treectrl的显示矩形(treectrl.GetClientRect)
  5. 如果项目显示矩形的右侧 > treectrl 的显示矩形 --> 显示工具提示 (item.left, item.top)
  6. 如果项目显示矩形的左侧 < treectrl 的显示矩形 --> SHOW TOOLTIP AT (treectrl.left, item.top)

不知道这是否有帮助。我在 MFC 应用程序中做了一个非常相似的事情来做专家突出显示。

于 2010-12-20T23:11:55.147 回答