【发布时间】:2010-09-12 01:21:06
【问题描述】:
假设我有一个列表视图控件,其中包含多个项目。我将如何允许用户拖放项目以在控件中重新排列它们。
列表视图控件在报表视图中,具有全行选择扩展样式。
提前致谢。
【问题讨论】:
假设我有一个列表视图控件,其中包含多个项目。我将如何允许用户拖放项目以在控件中重新排列它们。
列表视图控件在报表视图中,具有全行选择扩展样式。
提前致谢。
【问题讨论】:
在您的 ListView 的 WM_LBUTTONDOWN 处理程序中,将当前选定的项目索引存储在某处。
在 ListView 的 WM_LBUTTONUP 处理程序中,使用 ListView_HitTest() 确定光标下的项目。如果与存储的索引不同,则使用ListView_DeleteItem() 和ListView_InsertItem() 将“拖动”的项目“移动”到新索引。
(可选)为了帮助用户查看项目被“拖动”到的位置,在 ListView 的 WM_MOUSEMOVE 处理程序中,使用 ListView_HitTest() 确定光标下的项目,然后使用 ListView_SetItemState() 禁用/为先前“突出显示”的项目(如果有)启用LVIS_DROPHILITED 状态并“突出显示”当前项目。
【讨论】: