void CDriveExplorerView::OnInitialUpdate() {
CListView::OnInitialUpdate();
CDriveExplorerDoc* pDoc = GetDocument(); pDoc->m_ExplorerView = this; CRect rect;
GetClientRect(&rect);
GetListCtrl().InsertColumn(0, \ GetListCtrl().InsertColumn(1, \ GetListCtrl().InsertColumn(2, \ m_pImageList = new CImageList(); m_pImageListL = new CImageList(); SetupImages(m_pImageList, 16);
SetupImages(m_pImageListL, 32);
GetListCtrl().SetImageList(m_pImageList, LVSIL_SMALL); GetListCtrl().SetImageList(m_pImageListL, LVSIL_NORMAL); }
#ifdef _DEBUG
void CDriveExplorerView::AssertValid() const {
CListView::AssertValid(); }
void CDriveExplorerView::Dump(CDumpContext& dc) const {
CListView::Dump(dc); }
CDriveExplorerDoc* CDriveExplorerView::GetDocument() // non-debug version is inline {
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDriveExplorerDoc))); return (CDriveExplorerDoc*)m_pDocument; }
#endif //_DEBUG
void CDriveExplorerView::OnStyleChanged(int nStyleType, LPSTYLESTRUCT lpStyleStruct) {
//TODO: add code to react to the user changing the view style of your window }
void CDriveExplorerView::DeleteAllItems() {
GetListCtrl().DeleteAllItems();
}
void CDriveExplorerView::AddToListView(WIN32_FIND_DATA *fd) {
LV_ITEM lvitem; char sNumBuff[100]; int iActualItem; CString sText;
lvitem.mask = LVIF_TEXT | LVIF_IMAGE; lvitem.iItem = 0; lvitem.iSubItem = 0;
lvitem.pszText = GetNTS(fd->cFileName); // fd.cFileName;
lvitem.iImage = GetListViewIcon(fd->cFileName); //SetFileIcon(fd->GetFileName()); iActualItem = GetListCtrl().InsertItem(&lvitem); // Add Attribute column lvitem.mask = LVIF_TEXT; lvitem.iItem = iActualItem; lvitem.iSubItem = 1;
lvitem.pszText = GetNTS(GetFileType(fd->cFileName)); GetListCtrl().SetItem(&lvitem);
// Add Size column
if(fd->nFileSizeLow != 0)
ltoa((long)fd->nFileSizeLow,sNumBuff,10); else
strcpy(sNumBuff,\ lvitem.mask = LVIF_TEXT; lvitem.iItem = iActualItem; lvitem.iSubItem = 2;
lvitem.pszText = sNumBuff; GetListCtrl().SetItem(&lvitem); // Add Time column
CTime refTime;
refTime = fd->ftCreationTime; sText = refTime.Format( \ lvitem.mask = LVIF_TEXT; lvitem.iItem = iActualItem;
lvitem.iSubItem = 3;
lvitem.pszText = sText.GetBuffer(sText.GetLength()); GetListCtrl().SetItem(&lvitem); }
LPTSTR CDriveExplorerView::GetNTS(CString cString) {
LPTSTR lpsz = new TCHAR[cString.GetLength()+1]; _tcscpy(lpsz, cString); return lpsz; }
CString CDriveExplorerView::GetFileType(CString s) {
CString cResult;
int nFoundAt = s.Find(\ s.MakeUpper(); if(nFoundAt == 0) return s + \
CString ext = s.Mid(nFoundAt); if(ext == \ if(ext == \ if(ext == \
if(ext == \
else if(s == \.EXE\
else if(s == \
else if(ext == \
else if(ext == \== \ return \
else if(ext == \ return \
else if(ext == \ return \
else if(ext == \ else if(ext == \
else if(ext == \ return ICI_VIDEOFILE;
else if(ext == \ else if(ext == \ else if(ext == \
else if(ext == \ return \
else if(ext == \ ext == \ ext == \
return \
else if(ext == \ ext == \ ext == \ ext == \
ext == \
ext == \ return \
else if(ext == \
ext == \
return \
else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else {
ext = ext.Mid( (ext.Find(’.’,0) != -1 ? 1 : 0)); return ext + \ }
return cResult; }
UINT CDriveExplorerView::GetListViewIcon(CString s) {
int nFoundAt = s.Find(\ s.MakeUpper(); if(nFoundAt == 0)
return ICI_GENERALFILE; CString ext = s.Mid(nFoundAt); // Set some standard icon types
if(ext == \
else if(s == \.EXE\
else if(s == \ else if(ext == \ else if(ext == \ ext == \ ext == \
return ICI_ZIPFILE;
else if(ext == \ return ICI_EXEFILE;
else if(ext == \ return ICI_SOUNDFILE;
else if(ext == \
else if(ext == \
else if(ext == \ return ICI_VIDEOFILE;
else if(ext == \
else if(ext == \ else if(ext == \
else if(ext == \ return ICI_FOXPROFILE;
else if(ext == \ ext == \ return ICI_DRIVERSFILE;
else if(ext == \ ext == \ ext == \ ext == \ ext == \ ext == \ return ICI_IMAGEFILE;
else if(ext == \
ext == \
return ICI_WINDOWSFILE;
else if(ext == \else if(ext == \else if(ext == \
else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else if(ext == \ else
return ICI_GENERALFILE; }
void CDriveExplorerView::SetupImages(CImageList* mImageList, int iSize) {
CWinApp* pApp = AfxGetApp();
// ASSERT(m_pImageList != NULL); // serious allocation failure checking mImageList->Create(iSize, iSize, ILC_COLOR8 | ILC_MASK, 9, 9); mImageList->Add(pApp->LoadIcon(ICO_ACCESSFILE)); mImageList->Add(pApp->LoadIcon(ICO_C_SOURCE)); mImageList->Add(pApp->LoadIcon(ICO_CDDRV));