mfc初学,本人小白
今天学习了一下CListCtrl控件,现在做总结:
1.对CListCtrl控件的初始化
void CDriverCard_LHS_2_1Dlg::InitListCtrl(void) { m_listCtrl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); m_listCtrl.InsertColumn(0,_T("NO."),LVCFMT_LEFT,100); m_listCtrl.InsertColumn(1,_T("Name"),LVCFMT_LEFT,100); m_listCtrl.InsertColumn(2,_T("Car"),LVCFMT_LEFT,100); m_listCtrl.InsertColumn(3,_T("Date"),LVCFMT_LEFT,100); m_listCtrl.InsertColumn(4,_T("Available"),LVCFMT_LEFT,100); int i = 0; for (std::vector<CCardInfo>::iterator p = m_carManage.m_vciRecord.begin(); p != m_carManage.m_vciRecord.end();p++) { CString str1,str2,str3,str4,str5; str1.Format(_T("%s"),p->m_cardId); str2.Format(_T("%s"),p->m_cardName); str3.Format(_T("%s"),p->m_cardCar); str4.Format(_T("%s"),p->m_cardDate); str5.Format(_T("%s"),p->m_cardAvailable); m_listCtrl.InsertItem(i,str1); m_listCtrl.SetItemText(i,1,str2); m_listCtrl.SetItemText(i,2,str3); m_listCtrl.SetItemText(i,3,str4); m_listCtrl.SetItemText(i,4,str5); i++; } }
上述的代码是初始化列的信息。
2.添加每一行的信息
CString str1,str2,str3,str4,str5; int i = 0; str1.Format(_T("%s"),dlg.m_pAddCarInfo->m_cardId); str2.Format(_T("%s"),dlg.m_pAddCarInfo->m_cardName); str3.Format(_T("%s"),dlg.m_pAddCarInfo->m_cardCar); str4.Format(_T("%s"),dlg.m_pAddCarInfo->m_cardDate); str5.Format(_T("%s"),dlg.m_pAddCarInfo->m_cardAvailable); i = m_listCtrl.GetItemCount(); m_listCtrl.InsertItem(i,str1); m_listCtrl.SetItemText(i,1,str2); m_listCtrl.SetItemText(i,2,str3); m_listCtrl.SetItemText(i,3,str4); m_listCtrl.SetItemText(i,4,str5);
先用InsertItem()函数添加一行,再用SetItemText()函数添加其他列上的信息。
3.删除一行信息
int nCount = m_myListCtrl.GetItemCount(); // Delete all of the items from the list view control. for (int i=0; i < nCount; i++) { m_myListCtrl.DeleteItem(0); }
例子是来自msdn,因为我使用的是DeleteAllItem()函数,再向里面添加没被删除的行,比较麻烦。