自繪製listbox

要想在ListBox或者ListCtrl等控件中繪製你想要的圖形或者設置你想要的屬性,那麼必須採用自繪的方式。大體步驟以下:
    一、添加一個LISTBOX控件,將其Owner Draw屬性改成「FIXED」或者「VARIABLE」,前者是指每一個Item的高度同樣,後者能夠單獨對每個Item的高度設置,並能夠爲不一樣的 Item設置不一樣的屬性。此外,還須要將Has Strings的屬性設置爲TRUE。
    二、創建一個斷承CListBox的類COwnerListBox,重載(Override)它的幾個函數。主要是DrawItem和 MeasureItem兩個函數。其餘的函數能夠參見MSDN。
    三、MeasureItem中主要是設置這個ListBox的屬性。而DrawItem主要是本身畫每個Item.
    四、若是LISTBOX控件選擇了「FIXED」屬性後不作任何修改,那麼用AddString等函數添加的子項將不會被系統自動顯示,緣由是用戶選 擇了自繪屬性。這個屬性由COwnerListBox裏的DrawItem和MesureItem函數完成。DrawItem用來繪製子項 目,MesureItem用來修改項目的一些屬性(通常不用更改)。

完成上述步驟後,便可看見更改後的LISTBOX,另外按鈕等其餘控件步驟與思想是大同小異的。

手動建立:
m_UserList.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|LBS_NOTIFY|LBS_OWNERDRAWFIXED, CRect(0,0,100,100), this, IDC_GP_USER_LIST);ide

相關文章
相關標籤/搜索