1. 程式人生 > >duilib的Combo控制元件滾動條不顯示的問題

duilib的Combo控制元件滾動條不顯示的問題

這是一個經常被群裡朋友問到的問題。群裡解釋的次數太多了,這裡我寫一篇文章方便遇到同樣問題的人通過搜尋引擎能夠解惑。

duilib的Combo控制元件的下拉框是一個獨立的子視窗,類名:CComboWnd。

從duilib的原始碼可以知道,CComboUI控制元件在Add到佈局上的時候,自己的m_pManager還是當前所在視窗的管理器指標,這樣預設的滾動條樣式圖片等都在其中。

但是下拉框子窗體CComboWnd卻有自己的一個CPaintManagerUI物件m_pm,而這個m_pm卻沒有從m_pManager中拿到滾動條的樣式等資源(好像字型也是,好在字型可以直接指定全域性共享),這樣就出現了滾動條不顯示的問題。實際應該是顯示了只是因為沒有資源,所以看不到而已。

其實duilib原本設計的應該是通過dropbox屬性來設定下拉框的屬性等,只是我也沒去除錯這個dropbox的屬性值應該怎麼去寫。所以就冒昧改了一下原始碼。

修改後的原始碼地址:https://github.com/juhuaguai/duilib

此程式碼有問題也可以聯絡我[email protected],僅用於學習交流用,請勿做它用。