有没有办法滚动列表视图(在报表视图中),以便特定项目位于顶部?我能找到的最接近的是ListView_EnsureVisible,但这只能确保该项目可见 - 它不允许精确控制项目出现的位置。
答案 0 :(得分:4)
ListView_EnsureVisible()滚动ListView以使项目可见,但它通常(但不总是)将项目放在ListView的中间附近。要使项目显示在顶部,首先调用ListView_EnsureVisible(),然后调用ListView_GetTopIndex()以确定顶部可见项目,然后使用ListView_GetItemIndexRect()来检索项目的高度和位置,然后计算它们之间的垂直偏移,最后调用ListView_Scroll()。我在自己的一个项目中这样做,并且工作正常。