我想問你如何動態更改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中的項目位置