我正在研究listview的拖放功能。我被困在最后一步 - >用户完成拖放后重新排列多个所选项目。
你能解释一下实现项目重新排列的算法吗?
我有用户释放鼠标后点击项目的索引。我有拖动项目的索引和计数。伪代码也是可以接受的,但要注意我可能会跟进问题。
注:
此帖子已经过编辑,以回应声称我原来的问题没有寻求用户友好实施的评论。
重点是实施标准拖动和放弃行为,以及我在第一时间对我的问题表达不好的原因是我缺乏这方面的经验。
如果需要进一步说明,我会更新我的帖子。
问候。
答案 0 :(得分:2)
正常阻力&删除重新排序将删除所选项目并将其重新插入新位置。新地点的现有物品跳到原来的地方是非常不直观的。
实施"标准"重新排序,基本上你:
5
(假设要插入新项目上方项目6)LVM_DELETEITEM
2
使用上面的示例2
,然后插入3
,依此类推。另请注意,对于将项目拖动到列表顶部的情况,您需要进行特殊处理。在这种情况下,您可以在0
,然后1
开始插入,依此类推。