FileTransferProgressDlg.cpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. // FileTransferProgressDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "cp_main.h"
  5. #include "FileTransferProgressDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CFileTransferProgressDlg dialog
  13. CFileTransferProgressDlg::CFileTransferProgressDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CFileTransferProgressDlg::IDD, pParent)
  15. {
  16. m_bCancelled = false;
  17. }
  18. void CFileTransferProgressDlg::DoDataExchange(CDataExchange* pDX)
  19. {
  20. CDialog::DoDataExchange(pDX);
  21. //{{AFX_DATA_MAP(CFileTransferProgressDlg)
  22. DDX_Control(pDX, IDC_FILE_COPY, m_FileCopy);
  23. DDX_Control(pDX, IDCANCEL, m_m_CancelButton);
  24. DDX_Control(pDX, IDC_PROGRESS_FILE, m_ProgressSingleFile);
  25. DDX_Control(pDX, IDC_PROGRESS_ALL_FILES, m_ProgressAllFiles);
  26. DDX_Control(pDX, IDC_STATIC_1, m_Message);
  27. DDX_Control(pDX, IDC_STATIC_2, m_CopyingFile);
  28. //}}AFX_DATA_MAP
  29. }
  30. BEGIN_MESSAGE_MAP(CFileTransferProgressDlg, CDialog)
  31. //{{AFX_MSG_MAP(CFileTransferProgressDlg)
  32. //}}AFX_MSG_MAP
  33. END_MESSAGE_MAP()
  34. /////////////////////////////////////////////////////////////////////////////
  35. // CFileTransferProgressDlg message handlers
  36. void CFileTransferProgressDlg::PostNcDestroy()
  37. {
  38. CDialog::PostNcDestroy();
  39. delete this;
  40. }
  41. BOOL CFileTransferProgressDlg::OnInitDialog()
  42. {
  43. CDialog::OnInitDialog();
  44. m_FileCopy.Open(IDR_FILE_COPY);
  45. m_FileCopy.Play(0, -1, -1);
  46. SetNumFiles(0);
  47. ::SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE|SWP_SHOWWINDOW);
  48. return TRUE;
  49. }
  50. void CFileTransferProgressDlg::OnCancel()
  51. {
  52. m_bCancelled = true;
  53. }
  54. void CFileTransferProgressDlg::SetMessage(CString &cs)
  55. {
  56. m_Message.SetWindowText(cs);
  57. }
  58. CString CFileTransferProgressDlg::GetMessage()
  59. {
  60. CString cs;
  61. m_Message.GetWindowText(cs);
  62. return cs;
  63. }
  64. void CFileTransferProgressDlg::SetFileMessage(CString &cs)
  65. {
  66. m_CopyingFile.SetWindowText(cs);
  67. }
  68. void CFileTransferProgressDlg::SetNumFiles(int nFiles)
  69. {
  70. m_ProgressAllFiles.SetRange32(0, nFiles);
  71. m_ProgressAllFiles.SetStep(1);
  72. m_ProgressAllFiles.SetPos(0);
  73. m_ProgressSingleFile.SetRange32(0, 100);
  74. m_ProgressSingleFile.SetStep(1);
  75. m_ProgressSingleFile.SetPos(0);
  76. }
  77. void CFileTransferProgressDlg::ResetSingleFileProgress()
  78. {
  79. m_ProgressSingleFile.SetPos(0);
  80. }
  81. void CFileTransferProgressDlg::StepAllFiles()
  82. {
  83. m_ProgressAllFiles.StepIt();
  84. }
  85. void CFileTransferProgressDlg::SetSingleFilePos(int nPos)
  86. {
  87. m_ProgressSingleFile.SetPos(nPos);
  88. }
  89. void CFileTransferProgressDlg::PumpMessages()
  90. {
  91. int nLoops = 0;
  92. MSG msg;
  93. while(::PeekMessage(&msg, m_hWnd, 0, 0, PM_REMOVE))
  94. {
  95. TranslateMessage(&msg);
  96. DispatchMessage(&msg);
  97. nLoops++;
  98. if(nLoops > 100)
  99. break;
  100. }
  101. }