在上一個例子中,我們只用到了ListView的Report視圖,也就是詳細視圖。本文我們再把上一篇文 章中所用的例子進行一下擴充,例子源碼可以到俺的資源區下載。
我們為ListView中顯示的數 據加上表徵圖,並且允許使用者選擇顯示哪種視圖,如大表徵圖,小表徵圖,詳細資料等。
因為代碼還 比較長,我也不希望把代碼全部放出來,在寫完本文後,我會將源碼上傳到資源中。當然了,我也不可 能說每一行代碼都解釋一遍,那也不現實,而且,這樣也不好,我不能主觀地去懷疑讀者的領悟能力。
一、準備表徵圖
既然要用到表徵圖,為了簡單方便,就用VS的資源編輯器隨便畫幾下就有圖 標了,我們要準備兩個表徵圖,為什麼呢?第一個表徵圖是給EXE檔案用的,而第二個表徵圖是用在ListView 中的。因為在產生的.exe檔案的表徵圖是選用我們最先添加到資源中的表徵圖,為了使.EXE檔案的表徵圖和我 們在ListView中用的表徵圖不要一樣(這樣不好看),所以我們還是準備兩個表徵圖好一點。
表徵圖 中具備兩個尺寸就夠了——16*16和32*32,如果可能盡量用24位元影像,這樣你能用更多的顏色。
二、如何切換視圖
改變ListView的視圖,可以使用ListView_SetView宏,發送LVM_SETVIEW訊息 也可以,不過使用宏更方便。它的第一個參數指定LV控制項的控制代碼,第二個參數是設定用哪個視圖。
LV_VIEW_DETAILS——詳細視圖。
LV_VIEW_ICON——大表徵圖列表。
LV_VIEW_LIST ——列表視圖。
LV_VIEW_SMALLICON——小表徵圖。
LV_VIEW_TILE——平鋪,如果我沒記 錯的話,這個視圖是在XP時引入的。
三、ComboBox控制項使用
為了可以讓使用者選擇一個視 圖,自然要提供對應的操作介面,這是一種多選一的方式,用選項按鈕和下拉拉表框都可以,不過,單 選按鈕要佔用更多地方而且處理的訊息更多,相對麻煩,所以,還是ComboBox好一些。
用 ComboBox_AddString宏就可以向ComboBox中添加項,比如本例。
// 初始化ComboBox,以選擇視圖 hcbb = GetDlgItem(hDlg, IDC_CBVIEW); ComboBox_AddString(hcbb, L"大表徵圖"); ComboBox_AddString(hcbb, L"小表徵圖"); ComboBox_AddString(hcbb, L"列表"); ComboBox_AddString(hcbb, L"詳細");