CListCtrl *pCtrl = (CListCtrl *)GetDlgItem(IDC_DIALOG_LIST);
1、ListControl初始化
ListControl初始化代码添加在虚函数CDlgxxx::OnInitDialog()中:
pCtrl->ModifyStyle(0L,LVS_SHOWSELALWAYS);
DWORD dwStyle =
pCtrl->GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)
dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)
//dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件
dwStyle|= LVS_EX_CHECKBOXES;//checkbox
m_MyList.SetExtendedStyle(dwStyle);
//设置列标题
pCtrl->InsertColumn(0,_T(""));
pCtrl->InsertColumn(1,_T("编号"),LVCFMT_CENCTER,80);
pCtrl->InsertColumn(2,_T("文件路径"),LVCFMT_LEFT,100);
pCtrl->InsertColumn(3,_T("处理情况"),LVCFMT_RIGHT,80);
......
//InsertColumn第三个参数可设置为LVCFMT_LEFT, LVCFMT_RIGHT, or LVCFMT_CENTER
//解决第一列始终靠左的问题
pCtrl
->DeleteColumn(0);
2、在ListControl中插入数据
int nItem =
pCtrl->GetItemCount();
//获得列表行数
pCtrl->InsertItem(nItem, _T("data"));
pCtrl->SetItemText(nItem, 1, CString);
pCtrl->SetItemText(nItem, 2, CString);
3.删除所有数据, pCtrl
->deleteAlltems();
删除checkbox
for(int i = 0; i<m_lst->GetItemCount(); i++)
{
if(m_lst->GetCheck(i))
{
m_lst->DeleteItem(i);
i--;
}
{
if(m_lst->GetCheck(i))
{
m_lst->DeleteItem(i);
i--;
}
4.获取列值pCtrl->GetItemText(那一行,那一列);
5.删除值选中的(来自MSDN)
int iIdex;
do
{
iIdex = pCtrl->GetNextItem(-1,LVNI_SELECTED);
pCtrl->DeleteItem(iIdex);
} while (iIdex!=-1);
do
{
iIdex = pCtrl->GetNextItem(-1,LVNI_SELECTED);
pCtrl->DeleteItem(iIdex);
} while (iIdex!=-1);