c++ - 将 ListView 控件滚动到特定项目

标签 c++ c windows

有没有办法滚动 ListView (在报告 View 中)以便特定项目位于顶部?我能找到的最接近的是 ListView_EnsureVisible,但它只能确保项目可见 - 它不允许精细控制项目出现的位置。

最佳答案

ListView_EnsureVisible() 滚动 ListView 以使项目可见,但它通常(但不总是)将项目放置在 ListView 的中间附近。要让item出现在顶部,先调用ListView_EnsureVisible(),再调用ListView_GetTopIndex()确定最上面可见的item,然后用ListView_GetItemIndexRect()获取item的高度和位置,然后计算它们之间的垂直偏移,最后调用 ListView_Scroll()。我在自己的一个项目中这样做,效果很好。

关于c++ - 将 ListView 控件滚动到特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4532423/

相关文章:

C++ 如何将任何类(自定义)对象转换为 vector <unsigned char>

c++ - c++ 11中结构数组的大括号初始化

c - 如何检查套接字是否在c中使用,以在单个套接字上同时执行多个写入

c - GtkBuilder 忽略 .ui 文件

c# - 如何确定帐户的类型(AD 用户与 AD 组)?

windows - Docker与Windows兼容

c++ - 是否有某种工具或助手可以将 MFC/C++ 应用程序移植到 OS X/Cocoa?

c++ - 在单线程模式下运行 nunit GUI

c - 指向 union 的指针是否需要为所有成员对齐

c++ - FFmpeg捕获窗口时如何避免鼠标指针闪烁?