1. 設定ListControl風格1.1 四種風格
LVS_ICON: 為每個item顯示大表徵圖
LVS_SMALLICON:
為每個item顯示小表徵圖
LVS_LIST:顯示一列帶有小表徵圖的item
LVS_REPORT: 顯示item詳細資料
1.2 設定風格及擴充風格1.2.1 此部分轉自:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrflistviewstyles.asp
LONG lStyle; lStyle =GetWindowLong(m_list.m_hWnd, GWL_STYLE);//擷取當前視窗style lStyle &= ~LVS_TYPEMASK; //清除顯示方式位 lStyle |= LVS_REPORT; //設定style SetWindowLong(m_list.m_hWnd, GWL_STYLE,lStyle);//設定style DWORD dwStyle =m_list.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT;//選中某行使整行高亮(只適用與report風格的listctrl) dwStyle |= LVS_EX_GRIDLINES;//網格線(只適用與report風格的listctrl) dwStyle |= LVS_EX_CHECKBOXES;//item前產生checkbox控制項 m_list.SetExtendedStyle(dwStyle);//設定擴充風格 註:listview的style請查閱msdn
1.2.2 此部分來自揚子江:
DWORD dwStyle = GetWindowLong(m_DeviceName.m_hWnd, GWL_STYLE); dwStyle &= ~(LVS_TYPEMASK); dwStyle &= ~(LVS_EDITLABELS);
SetWindowLong(m_DeviceName.m_hWnd, GWL_STYLE, dwStyle | LVS_REPORT|LVS_NOLABELWRAP|LVS_SHOWSELALWAYS); //LVS_SHOWSELALWAYS為:一直選中item m_DeviceName.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT/*|LVS_EX_CHECKBOXES*/);
2. 添加列
m_DeviceName.InsertColumn(0, _T("序號"), LVCFMT_LEFT, 50, 0);
m_DeviceName.InsertColumn(1, _T("裝置名稱"), LVCFMT_LEFT, 150, 1);
3. 添加行
由於List Control控制項不允許直接添加列資訊,所以需要先向控制項中添加行,添加行代碼如下:
int row =m_CtrlList2.GetItemCount();
m_CtrlList.InsertItem(row,"");
m_list.SetItemText(nRow, 1,
“jacky”);//設定資料
4. 刪除選中行
POSITION ps;
int iIndex;
ps = m_DeviceMatch.GetFirstSelectedItemPosition();
iIndex = m_DeviceMatch.GetNextSelectedItem(ps);
m_DeviceMatch.DeleteItem(iIndex);
5. 得到選中行的文本
CString strName = _T("");
POSITION ps;
int iIndex;
ps = m_DeviceName.GetFirstSelectedItemPosition();
iIndex = m_DeviceName.GetNextSelectedItem(ps);
strName = m_DeviceName.GetItemText(iIndex, 1);
6. 選中與取消選中
int nIndex = 0;
//選中
m_DeviceName.SetItemState(nIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
//取消選中
m_DeviceName.SetItemState(nIndex, 0, LVIS_SELECTED|LVIS_FOCUSED);