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);