【问题标题】:rearranging listview items重新排列列表视图项
【发布时间】:2010-09-12 01:21:06
【问题描述】:

假设我有一个列表视图控件,其中包含多个项目。我将如何允许用户拖放项目以在控件中重新排列它们。

列表视图控件在报表视图中,具有全行选择扩展样式。

提前致谢。

【问题讨论】:

    标签: c++ winapi listview


    【解决方案1】:

    在您的 ListView 的 WM_LBUTTONDOWN 处理程序中,将当前选定的项目索引存储在某处。

    在 ListView 的 WM_LBUTTONUP 处理程序中,使用 ListView_HitTest() 确定光标下的项目。如果与存储的索引不同,则使用ListView_DeleteItem()ListView_InsertItem() 将“拖动”的项目“移动”到新索引。

    (可选)为了帮助用户查看项目被“拖动”到的位置,在 ListView 的 WM_MOUSEMOVE 处理程序中,使用 ListView_HitTest() 确定光标下的项目,然后使用 ListView_SetItemState() 禁用/为先前“突出显示”的项目(如果有)启用LVIS_DROPHILITED 状态并“突出显示”当前项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-23
      • 2011-04-08
      • 2015-03-20
      • 1970-01-01
      • 2021-10-05
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多