我首先调用ListView_GetToolTips()来获取列表视图的工具提示控件的HWND ,然后使用getwindowlongPtr() / SetwindowLongPtr()添加TTS_BALLOON样式。
我处理LVN_GETINFOTIP以自定义列表视图中项目(第一列)的工具提示:为第一列项目显示的工具提示文本实际上是第三列文本的副本。 其他列(子项)由列表视图自动pipe理。
第一列项目的气球样式工具提示看起来不错 ; 他们的茎正确定位:
如何在列表视图(Windows窗体C#)中创build一个平面的列标题button
Windows ListView控件(或类似的),可以有多列checkBox?
当用户向上滚动时,在ListView Windows Phone 8.1 RT App中调用IncrementalLoading
Windows 7触摸屏“耸肩”
但是第二列的工具提示看起来是错误的 ,例如气球被绘制,就好像它被引用到鼠标光标所指的实际行下面的一行中的子项。
在下面的图片中,“星号”表示鼠标光标在出现提示时的位置,但工具提示的指针指向下面一行,用椭圆标记:
奇怪的是, 第三列的工具提示似乎正确绘制 。
这是在列表视图控制中的错误? (我正在使用Windows 7)
或者我在这里错过了什么?
ListView使用一个跟踪工具提示并定位它展开,并且显示太小的列中的隐藏文本。 它并不期望它的工具提示是一个气球,所以不能弥补这一点。
您需要对工具提示进行TTM_TRACKPOSITION从ListView中查看TTM_TRACKPOSITION消息,并调整坐标。
你的第二个问题 – 阴影背景来自系统主题。 你应该能够通过调用工具提示SetwindowTheme (我不知道为什么ListView禁用提示的主题)。