我想问你如何动态更改wxListBox中项目的位置(例如,拖动&下拉) 我只找到了如何从wxWidget示例中将项目插入到wxListBox中(用wxWidgets下载)称为dnd。更改wxListBox中项目的位置
3
A
回答
1
总是最好从精确的要求开始。
- 用户在列表框中选择项目要移动
- 用户表示,他希望该项目拖动到新的位置
- 用户在列表框中选择项与拖动项目来替换
- 申请重新排列物品列表框按要求。
第1步似乎很简单。我想你不需要帮助?
第2步是最棘手的。您将需要处理鼠标事件,以便检测用户何时通过项目拖动鼠标。这里是鼠标事件类的文档http://docs.wxwidgets.org/trunk/classwx_mouse_event.html为了拉开这个诀窍,你需要理解大部分内容!
第3步也很棘手。当用户在拖动之后释放按钮时,您需要从事件中获取鼠标位置,并在释放按钮时计算鼠标下的项目。你需要一个HitTest方法。 wxListBox有一个吗?我怀疑不是!也许你应该考虑使用wxListCtrl,而不是试图构建自己的。 http://docs.wxwidgets.org/trunk/classwx_list_ctrl.html#ac346d7aa18722fb54580d4c4ed5cf113
第4步。现在,在完成所有鼠标处理后,您应该在移动之前或之后插入移动的项目和项目(您的呼叫)清除列表框,然后按新顺序插入项目。
这一切似乎是一个很大的麻烦。这个功能很重要吗?你能接受一个更简单的用户界面,它能够完成一小部分编码和测试工作,并且需要进行调试吗?
像这样:
- 用户选择项目移动
- 用户选择移动项向上或向下(向上/向下箭头键,左/右鼠标按钮,滚轮,这些都是可行)
- 所选项目向上或向下
- 用户重复,直到产品在需要的位置应用移动
2
如果你只是婉t允许用户重新排列列表框中的项目,请考虑使用wxEditableListBox。如果你真的需要拖放,应该可以按照ravenspoint的答案中的解释来实现它,但是它更困难。
相关问题
- 1. 如何更改loadObjectList()项目的位置?
- 2. 更改创建Unittest项目的位置
- 3. 更改Android项目的源位置
- 4. 如何更改项目中的项目资源位置?
- 5. ListView项目更改滚动位置
- 6. Eclipse更改项目文件位置
- 7. 改变列表中的项目位置
- 8. 更改位置服务中的选项
- 9. 如何在我的maven项目中更改ejb-jar.xml的位置?
- 10. 更改RecyclerView中的项目的视图位置滚动Android
- 11. 在android studio中更改复制项目的Subversion提交位置
- 12. 如何以编程方式更改RecyclerView中项目的位置?
- 13. 更改在VS 2008中存储项目的默认位置
- 14. 在VS解决方案中更改引用项目的位置
- 15. 更改项目结构中控制器的位置
- 16. 在VS2010中更改解决方案项目的位置
- 17. 如何在Maven项目中更改log4j.properties的位置?
- 18. 从CustomAdapter中更改ListView的项目位置
- 19. 在文件系统中更改Eclipse的项目位置
- 20. 更改上游项目中的速度日志文件位置
- 21. 更改的位置,$位置
- 22. 在Eclipse中更改所有项目位置
- 23. 无法在Visual Studio中更改项目位置
- 24. 在Zend_Framework项目中更改公用文件夹位置?
- 25. 在安装项目中更改dll位置
- 26. gridview在Android中按位置更改项目背景
- 27. 在Bullet Physics Hello World项目中更改碰撞体位置
- 28. 迁移Xcode项目后无法更改位置/路径设置
- 29. 根据屏幕上的位置更改ListView项目的高度
- 30. LinearLayout中的项目位置