home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Shareware / Programare / skincraft / SkinCrafter_v1.4.12_Demo.msi / _49E29CB9A65AABBF653C1037E1AA74B6 / _58AA6196987848C28D39DE3B7911FA68 < prev    next >
Encoding:
Text File  |  2004-06-29  |  5.2 KB  |  190 lines

  1. /******************************************************************
  2. $Archive: $
  3. $Workfile: $
  4. $Author: $
  5. $Date: $
  6. $Revision: $
  7. *******************************************************************/
  8.  
  9. #include "StdAfx.h"
  10. #include "resource.h"
  11. #include "MyPropertyPage2.h"
  12. #include "Controls.h"
  13.  
  14. #ifdef _DEBUG
  15. #undef THIS_FILE
  16. static char BASED_CODE THIS_FILE[] = __FILE__;
  17. #endif
  18.  
  19. IMPLEMENT_DYNCREATE(CMyPropertyPage2, CPropertyPage)
  20.  
  21. /////////////////////////////////////////////////////////////////////////////
  22. // CMyPropertyPage2 property page
  23.  
  24. CMyPropertyPage2::CMyPropertyPage2() : CPropertyPage(CMyPropertyPage2::IDD)
  25. {
  26.     //{{AFX_DATA_INIT(CMyPropertyPage2)
  27.         // NOTE: the ClassWizard will add member initialization here
  28.     //}}AFX_DATA_INIT
  29.     m_psp.dwFlags &= ~PSH_HASHELP;
  30. }
  31.  
  32. CMyPropertyPage2::~CMyPropertyPage2()
  33. {
  34. }
  35.                                        
  36. void CMyPropertyPage2::DoDataExchange(CDataExchange* pDX)
  37. {
  38.     CPropertyPage::DoDataExchange(pDX);
  39.     //{{AFX_DATA_MAP(CMyPropertyPage2)
  40.     DDX_Control(pDX, IDC_TREE1, m_ctlTree1);
  41.     DDX_Control(pDX, IDC_LIST1, m_ctlList1);        
  42.     //}}AFX_DATA_MAP
  43. }
  44.  
  45. BEGIN_MESSAGE_MAP(CMyPropertyPage2, CPropertyPage)
  46.     //{{AFX_MSG_MAP(CMyPropertyPage2)    
  47.     ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
  48.     //}}AFX_MSG_MAP
  49. END_MESSAGE_MAP()
  50.  
  51. BOOL CMyPropertyPage2::OnInitDialog()
  52. {
  53.     CPropertyPage::OnInitDialog();
  54.  
  55.     m_imgList = new CImageList();
  56.     m_imgList->Create(16,16,ILC_COLOR16|TRUE,0,4);
  57.     int res1;
  58.     res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON1));
  59.     res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON2));
  60.     res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON3));
  61.     res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON4));
  62.     res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON5));
  63.     res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON6));
  64.     res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON7));
  65.     res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON8));
  66.     res1 = m_imgList->Add(AfxGetApp()->LoadIcon(IDI_ICON9));
  67.  
  68.     m_ctlList1.SetImageList(m_imgList, LVSIL_SMALL);
  69.     m_ctlList1.SetExtendedStyle( LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP );
  70.     m_ctlTree1.SetImageList( m_imgList, TVSIL_NORMAL );
  71.  
  72.     CString fileSize = "";
  73.  
  74.     m_ctlList1.InsertColumn( 0, "Filename", LVCFMT_LEFT, 150);
  75.     m_ctlList1.InsertColumn( 1, "Type",        LVCFMT_LEFT, 50 );
  76.     m_ctlList1.InsertColumn( 2, "Size",        LVCFMT_LEFT, 100);
  77.  
  78.     TCHAR szBuf[256];
  79.     HTREEITEM explHI[50];
  80.     int test;
  81.     m_hi = m_ctlTree1.InsertItem( "c:\\", 1, 2 );
  82.     int i = 0;//folders
  83.     int e = 0;//files
  84.     WIN32_FIND_DATA fd;
  85.     SetCurrentDirectory( "c:\\" );
  86.     HANDLE h=FindFirstFile( "*.*", &fd );
  87.     while ( FindNextFile ( h, &fd ) )
  88.     {
  89.         if ( fd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
  90.         {
  91.             if (strcmp (fd.cFileName, "..")!=0)
  92.             {
  93.                 wsprintf( szBuf, fd.cFileName, i );
  94.                 explHI[i] = m_ctlTree1.InsertItem( szBuf,  1, 2, m_hi );
  95.                 i++;
  96.             }
  97.             test = m_ctlList1.InsertItem (LVIF_IMAGE | LVIF_TEXT,e, fd.cFileName, 0, 0, 4+rand()%5, 0L);
  98.             m_ctlList1.SetItemText( e, 1, "Folder" );
  99.             e++;
  100.         }
  101.         else
  102.         {
  103.             m_ctlList1.InsertItem (LVIF_IMAGE | LVIF_TEXT,e, fd.cFileName, 0, 0, 4+rand()%5, 0L);
  104.             fileSize.Format( "%d", fd.nFileSizeLow );
  105.             m_ctlList1.SetItemText( e, 1, "File" );
  106.             m_ctlList1.SetItemText( e, 2, fileSize );
  107.             e++;
  108.         }
  109.     }
  110.     FindClose(h);
  111.  
  112.     for ( int ii=0; ii<i; ii++ )
  113.         explorePathInTreeCtrl ( explHI[ii] );
  114.  
  115.     m_ctlTree1.Expand( m_hi, TVE_EXPAND );
  116.  
  117.    return TRUE;
  118. }
  119.  
  120. void CMyPropertyPage2::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
  121. {
  122.     NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
  123.     HTREEITEM selItem =  m_ctlTree1.GetSelectedItem();
  124.     explorePathInListCtrl(selItem);
  125.     *pResult = 0;
  126. }
  127.  
  128. void CMyPropertyPage2::explorePathInTreeCtrl(HTREEITEM selItem)
  129. {
  130.     CString path = m_ctlTree1.GetItemText(selItem);
  131.  
  132.     CString fileSize = "";
  133.     TCHAR szBuf[256];
  134.     HTREEITEM hi1;
  135.     int i = 0;//folders
  136.     WIN32_FIND_DATA fd;
  137.  
  138.     SetCurrentDirectory("c:\\"+path);
  139.     HANDLE h=FindFirstFile("*.*",&fd);
  140.     while (FindNextFile (h,&fd))
  141.     {
  142.         if (fd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
  143.         {
  144.             wsprintf( szBuf, fd.cFileName, i );
  145.             if (strcmp (fd.cFileName, "..")!=0)
  146.                 hi1 = m_ctlTree1.InsertItem( szBuf, 1, 2, selItem );
  147.             i++;
  148.         }
  149.     }
  150.     FindClose(h);
  151. }
  152.  
  153. void CMyPropertyPage2::explorePathInListCtrl(HTREEITEM selItem) 
  154. {
  155.     CString path = m_ctlTree1.GetItemText(selItem);
  156.     m_ctlList1.DeleteAllItems();
  157.  
  158.     BOOL canFillTree = FALSE;
  159.     if (m_ctlTree1.GetNextItem(selItem,TVGN_CHILD) == 0)
  160.         canFillTree = TRUE;
  161.  
  162.     LV_ITEM lvItem;
  163.     CString fileSize = "";
  164.     int e = 0;//files
  165.     WIN32_FIND_DATA fd;
  166.     if (strcmp (path, "c:\\")!=0)
  167.         SetCurrentDirectory("c:\\"+path);
  168.     else
  169.         SetCurrentDirectory("c:\\");
  170.     HANDLE h=FindFirstFile("*.*",&fd);
  171.     while (FindNextFile (h,&fd))
  172.     {
  173.         if (fd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
  174.         {
  175.             m_ctlList1.InsertItem (LVIF_IMAGE | LVIF_TEXT,e, fd.cFileName, 0, 0, 4+rand()%5, 0L);
  176.             m_ctlList1.SetItemText(e, 1, "Folder");
  177.             e++;
  178.         }
  179.         else
  180.         {
  181.             m_ctlList1.InsertItem (LVIF_IMAGE | LVIF_TEXT,e, fd.cFileName, 0, 0, 4+rand()%5, 0L);
  182.             fileSize.Format("%d", fd.nFileSizeLow);
  183.             m_ctlList1.SetItemText(e, 1, "File");
  184.             m_ctlList1.SetItemText(e, 2, fileSize);
  185.             e++;
  186.         }
  187.     }
  188.     FindClose(h);
  189. }
  190.