home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************
- $Archive: $
- $Workfile: $
- $Author: $
- $Date: $
- $Revision: $
- *******************************************************************/
-
- #include "StdAfx.h"
- #include "resource.h"
- #include "MyPropertyPage2.h"
- #include "Controls.h"
-
- #ifdef _DEBUG
- #undef THIS_FILE
- static char BASED_CODE THIS_FILE[] = __FILE__;
- #endif
-
- IMPLEMENT_DYNCREATE(CMyPropertyPage2, CPropertyPage)
-
- /////////////////////////////////////////////////////////////////////////////
- // CMyPropertyPage2 property page
-
- CMyPropertyPage2::CMyPropertyPage2() : CPropertyPage(CMyPropertyPage2::IDD)
- {
- //{{AFX_DATA_INIT(CMyPropertyPage2)
- // NOTE: the ClassWizard will add member initialization here
- //}}AFX_DATA_INIT
- m_psp.dwFlags &= ~PSH_HASHELP;
- }
-
- CMyPropertyPage2::~CMyPropertyPage2()
- {
- }
-
- void CMyPropertyPage2::DoDataExchange(CDataExchange* pDX)
- {
- CPropertyPage::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CMyPropertyPage2)
- DDX_Control(pDX, IDC_TREE1, m_ctlTree1);
- DDX_Control(pDX, IDC_LIST1, m_ctlList1);
- //}}AFX_DATA_MAP
- }
-
- BEGIN_MESSAGE_MAP(CMyPropertyPage2, CPropertyPage)
- //{{AFX_MSG_MAP(CMyPropertyPage2)
- ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- BOOL CMyPropertyPage2::OnInitDialog()
- {
- CPropertyPage::OnInitDialog();
-
- m_imgList = new CImageList();
- m_imgList->Create(16,16,ILC_COLOR16|TRUE,0,4);
- int res1;
- res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON1));
- res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON2));
- res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON3));
- res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON4));
- res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON5));
- res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON6));
- res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON7));
- res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON8));
- res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON9));
-
- m_ctlList1.SetImageList(m_imgList, LVSIL_SMALL);
- m_ctlList1.SetExtendedStyle( LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP );
- m_ctlTree1.SetImageList( m_imgList, TVSIL_NORMAL );
-
- CString fileSize = "";
-
- m_ctlList1.InsertColumn( 0, "Filename", LVCFMT_LEFT, 150);
- m_ctlList1.InsertColumn( 1, "Type", LVCFMT_LEFT, 50 );
- m_ctlList1.InsertColumn( 2, "Size", LVCFMT_LEFT, 100);
-
- TCHAR szBuf[256];
- HTREEITEM explHI[50];
- int test;
- m_hi = m_ctlTree1.InsertItem( "c:\\", 1, 2 );
- int i = 0;//folders
- int e = 0;//files
- WIN32_FIND_DATA fd;
- SetCurrentDirectory( "c:\\" );
- HANDLE h=FindFirstFile( "*.*", &fd );
- while ( FindNextFile ( h, &fd ) )
- {
- if ( fd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
- {
- if (strcmp (fd.cFileName, "..")!=0)
- {
- wsprintf( szBuf, fd.cFileName, i );
- explHI[i] = m_ctlTree1.InsertItem( szBuf, 1, 2, m_hi );
- i++;
- }
- test = m_ctlList1.InsertItem (LVIF_IMAGE | LVIF_TEXT,e, fd.cFileName, 0, 0, 4+rand()%5, 0L);
- m_ctlList1.SetItemText( e, 1, "Folder" );
- e++;
- }
- else
- {
- m_ctlList1.InsertItem (LVIF_IMAGE | LVIF_TEXT,e, fd.cFileName, 0, 0, 4+rand()%5, 0L);
- fileSize.Format( "%d", fd.nFileSizeLow );
- m_ctlList1.SetItemText( e, 1, "File" );
- m_ctlList1.SetItemText( e, 2, fileSize );
- e++;
- }
- }
- FindClose(h);
-
- for ( int ii=0; ii<i; ii++ )
- explorePathInTreeCtrl ( explHI[ii] );
-
- m_ctlTree1.Expand( m_hi, TVE_EXPAND );
-
- return TRUE;
- }
-
- void CMyPropertyPage2::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult)
- {
- NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
- HTREEITEM selItem = m_ctlTree1.GetSelectedItem();
- explorePathInListCtrl(selItem);
- *pResult = 0;
- }
-
- void CMyPropertyPage2::explorePathInTreeCtrl(HTREEITEM selItem)
- {
- CString path = m_ctlTree1.GetItemText(selItem);
-
- CString fileSize = "";
- TCHAR szBuf[256];
- HTREEITEM hi1;
- int i = 0;//folders
- WIN32_FIND_DATA fd;
-
- SetCurrentDirectory("c:\\"+path);
- HANDLE h=FindFirstFile("*.*",&fd);
- while (FindNextFile (h,&fd))
- {
- if (fd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
- {
- wsprintf( szBuf, fd.cFileName, i );
- if (strcmp (fd.cFileName, "..")!=0)
- hi1 = m_ctlTree1.InsertItem( szBuf, 1, 2, selItem );
- i++;
- }
- }
- FindClose(h);
- }
-
- void CMyPropertyPage2::explorePathInListCtrl(HTREEITEM selItem)
- {
- CString path = m_ctlTree1.GetItemText(selItem);
- m_ctlList1.DeleteAllItems();
-
- BOOL canFillTree = FALSE;
- if (m_ctlTree1.GetNextItem(selItem,TVGN_CHILD) == 0)
- canFillTree = TRUE;
-
- LV_ITEM lvItem;
- CString fileSize = "";
- int e = 0;//files
- WIN32_FIND_DATA fd;
- if (strcmp (path, "c:\\")!=0)
- SetCurrentDirectory("c:\\"+path);
- else
- SetCurrentDirectory("c:\\");
- HANDLE h=FindFirstFile("*.*",&fd);
- while (FindNextFile (h,&fd))
- {
- if (fd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
- {
- m_ctlList1.InsertItem (LVIF_IMAGE | LVIF_TEXT,e, fd.cFileName, 0, 0, 4+rand()%5, 0L);
- m_ctlList1.SetItemText(e, 1, "Folder");
- e++;
- }
- else
- {
- m_ctlList1.InsertItem (LVIF_IMAGE | LVIF_TEXT,e, fd.cFileName, 0, 0, 4+rand()%5, 0L);
- fileSize.Format("%d", fd.nFileSizeLow);
- m_ctlList1.SetItemText(e, 1, "File");
- m_ctlList1.SetItemText(e, 2, fileSize);
- e++;
- }
- }
- FindClose(h);
- }
-