int InitHeader(CListCtrl& list, const CString& header, int first) { int beg, end, nbCol, fmt, field, len; HDITEM hi; if (first == 0) { // Delete the old columns int nbCol = list.GetHeaderCtrl()->GetItemCount(); while (--nbCol >= 0) list.DeleteColumn(0); } len = header.GetLength(); hi.mask = HDI_LPARAM|HDI_IMAGE; hi.iImage = 0; // Loop for all columns (a field in the string for each) for (beg = nbCol = 0; beg < len; nbCol++, beg = end + 1) { // It's not '\n' at the last field if ( (end = header.Find(_TCHAR('\n'), beg)) < 0 ) end = len; if (end > beg) { // Read the data type switch ( header.GetAt(beg) ) { case _TCHAR('T'): hi.lParam = STI_TEXT, beg++; break; case _TCHAR('N'): hi.lParam = STI_REVERSE|STI_NUMBER, beg++; break; case _TCHAR('H'): hi.lParam = STI_REVERSE|STI_HEXADEC,beg++; break; case _TCHAR('A'): hi.lParam = STI_REVERSE|STI_ABSOLU ,beg++; break; default : hi.lParam = 0; // sort disable } } else hi.lParam = 0; // sort disable if (end > beg) { // Read the alignment of the column and skip this char switch ( header.GetAt(beg) ) { case _TCHAR('L'): fmt = LVCFMT_LEFT, beg++; break; case _TCHAR('C'): fmt = LVCFMT_CENTER, beg++; break; case _TCHAR('R'): fmt = LVCFMT_RIGHT, beg++; break; default : fmt = LVCFMT_LEFT; } } else fmt = LVCFMT_LEFT; if ( (field = end - beg) >= 0 ) { // Inserts a new column in the list view list.InsertColumn(first + nbCol, header.Mid(beg, field), fmt); list.GetHeaderCtrl()->SetItem(first + nbCol, &hi); } } // Set reasonable widths for our columns for (int i = 0; i < nbCol; i++) list.SetColumnWidth(first + i, LVSCW_AUTOSIZE_USEHEADER); return first + nbCol; }
void GeometryListView::Update() // Rebuild the list of geometry resources. { // CPropertyPage::OnUpdate(pSender, lHint, pHint); // TODO: Add extra initialization here CTerrainDoc* doc = GetDocument(); Geometry* g = doc->GetGeometryList(); int GeometryCount = doc->GetGeometryCount(); CListCtrl* list = &m_ListControl /* (CListCtrl*) GetDlgItem(IDC_GEOMETRYLIST) */; if (list->m_hWnd == NULL) return; // Setup the column headings. while (list->DeleteColumn(0)) ; LV_COLUMN col; col.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH; col.fmt = LVCFMT_LEFT; // Name. col.pszText = "Name"; col.iSubItem = 0; col.cx = 75; list->InsertColumn(0, &col); // Filename. col.iSubItem = 1; col.pszText = "Filename"; col.cx = 100; list->InsertColumn(1, &col); // Comment. col.iSubItem = 2; col.pszText = "Comment"; col.cx = 170; list->InsertColumn(2, &col); // Set the list items. list->DeleteAllItems(); list->SetItemCount(GeometryCount); for (int i = 0; i < GeometryCount; i++, g = g->Next) { if (g == NULL) break; int index = list->InsertItem(i, g->GetName()); list->SetItemText(index, 1, g->GetFilename()); list->SetItemText(index, 2, g->GetComment()); list->SetItemData(index, i); } }
// @pymethod int|PyCListCtrl|DeleteColumn|Deletes the specified column from the list control. PyObject *PyCListCtrl_DeleteColumn( PyObject *self, PyObject *args ) { int col; if (!PyArg_ParseTuple( args, "i:DeleteColumn", &col)) // @pyparm int|first||Index of the column to be removed. return NULL; CListCtrl *pList = GetListCtrl(self); if (!pList) return NULL; GUI_BGN_SAVE; BOOL ok = pList->DeleteColumn(col); GUI_END_SAVE; if (!ok) RETURN_ERR("DeleteColumn failed"); RETURN_NONE; }
void COpenExcelDlg::Lin_InportExcelToList(CString m_FilePath,CListCtrl &m_List) { //先删除列表内容// m_List.DeleteAllItems(); while(m_List.GetHeaderCtrl()->GetItemCount()>0) { m_List.DeleteColumn(0); } //导入 CApplication app; CWorkbook book; CWorkbooks books; CWorksheet sheet; CWorksheets sheets; CRange range; LPDISPATCH lpDisp; //定义变量// COleVariant covOptional((long) DISP_E_PARAMNOTFOUND,VT_ERROR); if (!app.CreateDispatch(_T("Excel.Application"))) { this->MessageBox(_T("无法创建Excel应用")); return; } books = app.get_Workbooks(); //打开Excel,其中m_FilePath为Excel表的路径名// lpDisp = books.Open(m_FilePath,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional); book.AttachDispatch(lpDisp); sheets = book.get_Worksheets(); sheet = sheets.get_Item(COleVariant((short)1)); CStringArray m_HeadName; for (int i=1;i<26;i++) { CString m_pos = Lin_GetEnglishCharacter(i); m_pos = m_pos + _T("1"); range = sheet.get_Range(COleVariant(m_pos),COleVariant(m_pos)); //获得单元格的内容 COleVariant rValue; rValue = COleVariant(range.get_Value2()); //转换成宽字符// rValue.ChangeType(VT_BSTR); //转换格式,并输出// CString m_content = CString(rValue.bstrVal); if (m_content!=_T("")) { m_HeadName.Add(m_content); } } Lin_InitList(m_List,m_HeadName); CStringArray m_ContentArr; for (int ItemNum = 0;ItemNum<10000;ItemNum++) { for (int j=1;j<m_List.GetHeaderCtrl()->GetItemCount();j++) { CString m_pos = Lin_GetEnglishCharacter(j); CString m_Itempos; m_Itempos.Format(_T("%d"),ItemNum+2); CString m_str = m_pos+m_Itempos; range = sheet.get_Range(COleVariant(m_str),COleVariant(m_str)); //获得单元格的内容 COleVariant rValue; rValue = COleVariant(range.get_Value2()); //转换成宽字符// rValue.ChangeType(VT_BSTR); //转换格式,并输出// CString m_content = CString(rValue.bstrVal); m_ContentArr.Add(m_content); } if (m_ContentArr.GetAt(0)!=_T("")) { Lin_InsertList(m_List,m_ContentArr); m_ContentArr.RemoveAll(); } else{ break; } } book.put_Saved(TRUE); app.Quit(); }
void CfoodTrackView::FilterClass() { CDlgFilterClass dlg; if(dlg.DoModal()==IDCANCEL) return; CListCtrl *pListCtrl; pListCtrl = &this->GetListCtrl(); pListCtrl->DeleteAllItems(); while(pListCtrl->DeleteColumn(0)){} //LV_ITEM lvitem; CStudent *pStu; CItem *pItem; CString sTmp; CClass *pClass; int i=0,iPos=0,j=0; CfoodTrackDoc *pDoc=this->GetDocument(); pListCtrl->InsertColumn(0,"*",LVCFMT_LEFT,30,-1); pListCtrl->InsertColumn(1,"日期",LVCFMT_LEFT,80,-1); pListCtrl->InsertColumn(2,"时间",LVCFMT_LEFT,40,-1); pListCtrl->InsertColumn(3,"车号",LVCFMT_LEFT,80,-1); pListCtrl->InsertColumn(4,"教练",LVCFMT_LEFT,50,-1); pListCtrl->InsertColumn(5,"姓名",LVCFMT_LEFT,50,-1); pListCtrl->InsertColumn(6,"性别",LVCFMT_LEFT,40,-1); pListCtrl->InsertColumn(7,"身份证",LVCFMT_LEFT,100,-1); pListCtrl->InsertColumn(8,"联系地址",LVCFMT_LEFT,110,-1); pListCtrl->InsertColumn(9,"电话",LVCFMT_LEFT,80,-1); pListCtrl->InsertColumn(10,"上车时间",LVCFMT_LEFT,70,-1); pListCtrl->InsertColumn(11,"场考时间",LVCFMT_LEFT,70,-1); pListCtrl->InsertColumn(12,"路考时间",LVCFMT_LEFT,70,-1); pListCtrl->InsertColumn(13,"考试类型",LVCFMT_LEFT,70,-1); pListCtrl->InsertColumn(14,"发证日期",LVCFMT_LEFT,70,-1); if(pDoc->ReadClasss(dlg.m_tmStart,dlg.m_tmEnd,dlg.m_sAutoNo,dlg.m_sTeacher)<=0) return; for(i=0;i<pDoc->m_arrClass.GetSize();i++) { pClass = pDoc->m_arrClass[i]; for(j=0;j<pClass->m_arrStudent.GetSize();j++) { pStu = pClass->m_arrStudent[j]; sTmp.Format("%d",pListCtrl->GetItemCount()+1); iPos = pListCtrl->InsertItem(pListCtrl->GetItemCount(),sTmp,0); sTmp.Format("%d-%d-%d",pClass->m_F_Date.GetYear(),pClass->m_F_Date.GetMonth(),pClass->m_F_Date.GetDay()); pListCtrl->SetItemText(iPos,1,sTmp); if(pClass->m_F_NoonID==0) sTmp = "上午"; else sTmp = "下午"; pListCtrl->SetItemText(iPos,2,sTmp); pListCtrl->SetItemText(iPos,3,pClass->m_F_AutoNo); pListCtrl->SetItemText(iPos,4,pClass->m_F_Teacher); pListCtrl->SetItemText(iPos,5,pStu->m_F_ItemName); pListCtrl->SetItemText(iPos,6,pStu->m_F_Sex); pListCtrl->SetItemText(iPos,7,pStu->m_F_SN); pListCtrl->SetItemText(iPos,8,pStu->m_F_Address); pListCtrl->SetItemText(iPos,9,pStu->m_F_Tel); //*/日期/时间/车号/教练/姓名/性别/身份证/联系地址/电话/上车时间 //场考时间/路考时间/考试类型/发证日期 if(pStu->m_tmUpAuto>0) { sTmp.Format("%d-%d-%d",pStu->m_tmUpAuto.GetYear(),pStu->m_tmUpAuto.GetMonth(),pStu->m_tmUpAuto.GetDay()); pListCtrl->SetItemText(iPos,10,sTmp); } if(pStu->m_tmExamField>0) { sTmp.Format("%d-%d-%d",pStu->m_tmExamField.GetYear(),pStu->m_tmExamField.GetMonth(),pStu->m_tmExamField.GetDay()); pListCtrl->SetItemText(iPos,11,sTmp); } if(pStu->m_tmExamRoad>0) { sTmp.Format("%d-%d-%d",pStu->m_tmExamRoad.GetYear(),pStu->m_tmExamRoad.GetMonth(),pStu->m_tmExamRoad.GetDay()); pListCtrl->SetItemText(iPos,12,sTmp); } pItem = pDoc->GetItemByID(&pDoc->m_arrExamType,pStu->m_nExamTypeID); if(pItem) pListCtrl->SetItemText(iPos,13,pItem->m_F_ItemName); if(pStu->m_tmEnd>0) { sTmp.Format("%d-%d-%d",pStu->m_tmEnd.GetYear(),pStu->m_tmEnd.GetMonth(),pStu->m_tmEnd.GetDay()); pListCtrl->SetItemText(iPos,14,sTmp); } pListCtrl->SetItemData(iPos,pClass->m_F_ID); } } }
void CfoodTrackView::OnViewRefresh() { // TODO: Add your command handler code here CListCtrl *pListCtrl; pListCtrl = &this->GetListCtrl(); pListCtrl->DeleteAllItems(); while(pListCtrl->DeleteColumn(0)){} //LV_ITEM lvitem; CStudent *pStu; CItem *pItem; CString sTmp; CClass *pClass; int i=0,iPos=0,j=0; CfoodTrackDoc *pDoc=this->GetDocument(); switch(m_nDataType) { case dtStudent: pDoc->FillStudentsToListctrl(pListCtrl,_T(""),_T("")); break; case dtClass: pListCtrl->InsertColumn(0,"*",LVCFMT_LEFT,30,-1); pListCtrl->InsertColumn(1,"日期",LVCFMT_LEFT,80,-1); pListCtrl->InsertColumn(2,"时间",LVCFMT_LEFT,40,-1); pListCtrl->InsertColumn(3,"车号",LVCFMT_LEFT,80,-1); pListCtrl->InsertColumn(4,"教练",LVCFMT_LEFT,50,-1); pListCtrl->InsertColumn(5,"姓名",LVCFMT_LEFT,50,-1); pListCtrl->InsertColumn(6,"性别",LVCFMT_LEFT,40,-1); pListCtrl->InsertColumn(7,"身份证",LVCFMT_LEFT,100,-1); pListCtrl->InsertColumn(8,"联系地址",LVCFMT_LEFT,110,-1); pListCtrl->InsertColumn(9,"电话",LVCFMT_LEFT,80,-1); pListCtrl->InsertColumn(10,"上车时间",LVCFMT_LEFT,70,-1); pListCtrl->InsertColumn(11,"场考时间",LVCFMT_LEFT,70,-1); pListCtrl->InsertColumn(12,"路考时间",LVCFMT_LEFT,70,-1); pListCtrl->InsertColumn(13,"考试类型",LVCFMT_LEFT,70,-1); pListCtrl->InsertColumn(14,"发证日期",LVCFMT_LEFT,70,-1); if(pDoc->ReadClasss(0,0,_T(""),_T(""))<=0) return; for(i=0;i<pDoc->m_arrClass.GetSize();i++) { pClass = pDoc->m_arrClass[i]; for(j=0;j<pClass->m_arrStudent.GetSize();j++) { pStu = pClass->m_arrStudent[j]; sTmp.Format("%d",pListCtrl->GetItemCount()+1); iPos = pListCtrl->InsertItem(pListCtrl->GetItemCount(),sTmp,0); sTmp.Format("%d-%d-%d",pClass->m_F_Date.GetYear(),pClass->m_F_Date.GetMonth(),pClass->m_F_Date.GetDay()); pListCtrl->SetItemText(iPos,1,sTmp); if(pClass->m_F_NoonID==0) sTmp = "上午"; else sTmp = "下午"; pListCtrl->SetItemText(iPos,2,sTmp); pListCtrl->SetItemText(iPos,3,pClass->m_F_AutoNo); pListCtrl->SetItemText(iPos,4,pClass->m_F_Teacher); pListCtrl->SetItemText(iPos,5,pStu->m_F_ItemName); pListCtrl->SetItemText(iPos,6,pStu->m_F_Sex); pListCtrl->SetItemText(iPos,7,pStu->m_F_SN); pListCtrl->SetItemText(iPos,8,pStu->m_F_Address); pListCtrl->SetItemText(iPos,9,pStu->m_F_Tel); //*/日期/时间/车号/教练/姓名/性别/身份证/联系地址/电话/上车时间 //场考时间/路考时间/考试类型/发证日期 if(pStu->m_tmUpAuto>0) { sTmp.Format("%d-%d-%d",pStu->m_tmUpAuto.GetYear(),pStu->m_tmUpAuto.GetMonth(),pStu->m_tmUpAuto.GetDay()); pListCtrl->SetItemText(iPos,10,sTmp); } if(pStu->m_tmExamField>0) { sTmp.Format("%d-%d-%d",pStu->m_tmExamField.GetYear(),pStu->m_tmExamField.GetMonth(),pStu->m_tmExamField.GetDay()); pListCtrl->SetItemText(iPos,11,sTmp); } if(pStu->m_tmExamRoad>0) { sTmp.Format("%d-%d-%d",pStu->m_tmExamRoad.GetYear(),pStu->m_tmExamRoad.GetMonth(),pStu->m_tmExamRoad.GetDay()); pListCtrl->SetItemText(iPos,12,sTmp); } pItem = pDoc->GetItemByID(&pDoc->m_arrExamType,pStu->m_nExamTypeID); if(pItem) pListCtrl->SetItemText(iPos,13,pItem->m_F_ItemName); if(pStu->m_tmEnd>0) { sTmp.Format("%d-%d-%d",pStu->m_tmEnd.GetYear(),pStu->m_tmEnd.GetMonth(),pStu->m_tmEnd.GetDay()); pListCtrl->SetItemText(iPos,14,sTmp); } pListCtrl->SetItemData(iPos,pClass->m_F_ID); } } break; default: break; } }
///////////////////////////////////////////////////////////////////////////// // CLryEDBQryView message handlers void CLryEDBQryView::FillList() { int iStrLen = 0; int i = 0; _variant_t str; CStringArray ColNameArray; BeginWaitCursor() ; try { CLryEDBQryDoc* pDoc = (CLryEDBQryDoc*)GetDocument(); _RecordsetPtr pRs = pDoc->Rs; //得到所有字段名称 GetAllFieldName(pRs,&ColNameArray); CListCtrl * ListCtrl = (CListCtrl *)&GetListCtrl(); ListCtrl->SetRedraw(FALSE); //清除所有数据 ListCtrl->DeleteAllItems(); //清除所有标题 do { ListCtrl->DeleteColumn(0); } while(ListCtrl->GetHeaderCtrl()->GetItemCount()>0); //写字段标题 for(i=ColNameArray.GetSize()-1;i>=0;i--) { CDC *pDC = GetDC(); iStrLen = pDC->GetTextExtent(ColNameArray.GetAt(i)).cx*2; ListCtrl->InsertColumn(0,ColNameArray.GetAt(i),LVCFMT_CENTER,iStrLen ,-1); ReleaseDC(pDC); } // LONG RecordCount = 0; RecordCount = pRs->GetRecordCount(); ListCtrl->SetItemCount(RecordCount); if(RecordCount>0) { if(!pRs->adoEOF) pRs->MoveLast(); while(!pRs->BOF) { for(i=0;i<pRs->Fields->Count;i++) { str = pRs->GetCollect((_bstr_t)ColNameArray.GetAt(i)); if(i==0) ListCtrl->InsertItem(0,VariantToStr(str)); else ListCtrl->SetItemText(0,i,VariantToStr(str)); } pRs->MovePrevious(); } pDoc->MoveFirst(); } ListCtrl->SetRedraw(TRUE); pDoc->UpdateAllViews(this); } catch(_com_error &e) { dump_com_error(e); } EndWaitCursor(); }