ImportPhoto.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. // ImportPhoto.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "LYFZIPManage.h"
  5. #include "ImportPhoto.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // ImportPhoto dialog
  13. ImportPhoto::ImportPhoto(CWnd* pParent /*=NULL*/)
  14. : CDialog(ImportPhoto::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(ImportPhoto)
  17. // NOTE: the ClassWizard will add member initialization here
  18. m_mode=0;
  19. //}}AFX_DATA_INIT
  20. m_pArray2=NULL;
  21. m_pDesArray=NULL;
  22. m_exitcode=0;
  23. m_bOverWrite=1;
  24. }
  25. void ImportPhoto::DoDataExchange(CDataExchange* pDX)
  26. {
  27. CDialog::DoDataExchange(pDX);
  28. //{{AFX_DATA_MAP(ImportPhoto)
  29. DDX_Control(pDX, IDC_PROGRESS1, m_progress);
  30. //}}AFX_DATA_MAP
  31. }
  32. BEGIN_MESSAGE_MAP(ImportPhoto, CDialog)
  33. //{{AFX_MSG_MAP(ImportPhoto)
  34. ON_WM_CLOSE()
  35. //}}AFX_MSG_MAP
  36. END_MESSAGE_MAP()
  37. /////////////////////////////////////////////////////////////////////////////
  38. // ImportPhoto message handlers
  39. void ImportPhoto::OnOK()
  40. {
  41. // TODO: Add extra validation here
  42. }
  43. void ImportPhoto::OnCancel()
  44. {
  45. // TODO: Add extra cleanup here
  46. }
  47. int GetFileNo(CString dir)
  48. {
  49. CString path;
  50. int begin=1;
  51. path.Format ("%s%03d.jpg", dir, begin);
  52. while(::PathFileExists (path))
  53. {
  54. begin++;
  55. path.Format ("%s%03d.jpg", dir, begin);
  56. }
  57. return begin;
  58. }
  59. UINT ImportPhotoThread( LPVOID lpParameter )
  60. {
  61. ImportPhoto *pThis=(ImportPhoto*)lpParameter;
  62. pThis->m_progress .SetRange (0, pThis->m_pArray->GetSize ());
  63. CString filename, filename2;
  64. if(pThis->m_pArray2)
  65. {
  66. for(int i=0; i<pThis->m_pArray->GetSize (); i++)
  67. {
  68. filename=pThis->m_pArray->ElementAt (i);
  69. ::CopyFile (filename, pThis->m_savepath+pThis->m_pArray2->ElementAt (i)+".jpg", pThis->m_bOverWrite==0);
  70. pThis->m_progress.SetPos (i+1);
  71. }
  72. }
  73. else if(pThis->m_pDesArray)
  74. {
  75. for(int i=0; i<pThis->m_pArray->GetSize (); i++)
  76. {
  77. filename=pThis->m_pArray->ElementAt (i);
  78. if(pThis->m_mode==2)
  79. {
  80. filename2.Format("%s%03d.jpg",pThis->m_savepath, GetFileNo(pThis->m_savepath) );
  81. ::CopyFile(filename, filename2, pThis->m_bOverWrite==0);
  82. }
  83. else
  84. ::CopyFile (filename, pThis->m_pDesArray->ElementAt (i), pThis->m_bOverWrite==0);
  85. pThis->m_progress.SetPos (i+1);
  86. }
  87. }
  88. else
  89. {
  90. for(int i=0; i<pThis->m_pArray->GetSize (); i++)
  91. {
  92. filename=pThis->m_pArray->ElementAt (i);
  93. if(pThis->m_mode==2)
  94. {
  95. filename2.Format("%s%03d.jpg",pThis->m_savepath, GetFileNo(pThis->m_savepath) );
  96. ::CopyFile(filename, filename2, pThis->m_bOverWrite==0);
  97. }
  98. else
  99. ::CopyFile (filename, pThis->m_savepath+filename.Right (filename.GetLength ()-filename.ReverseFind ('\\')-1), pThis->m_bOverWrite==0);
  100. pThis->m_progress.SetPos (i+1);
  101. }
  102. }
  103. pThis->PostMessage (WM_CLOSE, 0, 0);
  104. return 1;
  105. }
  106. BOOL ImportPhoto::OnInitDialog()
  107. {
  108. CDialog::OnInitDialog();
  109. if(m_mode==1)
  110. SetDlgItemText(IDC_STATIC1, "ÕýÔÚµ¼³ö¿ÍÕÕ, ÇëÉÔºò...");
  111. // TODO: Add extra initialization here
  112. AfxBeginThread((AFX_THREADPROC)ImportPhotoThread,(LPVOID)this );
  113. return TRUE; // return TRUE unless you set the focus to a control
  114. // EXCEPTION: OCX Property Pages should return FALSE
  115. }
  116. void ImportPhoto::OnClose()
  117. {
  118. // TODO: Add your message handler code here and/or call default
  119. CDialog::OnOK();
  120. }