FileTransferProgressDlg.cpp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. void CFileTransferProgressDlg::SetFileMessage(CString &cs)
  59. {
  60. m_CopyingFile.SetWindowText(cs);
  61. }
  62. void CFileTransferProgressDlg::SetNumFiles(int nFiles)
  63. {
  64. m_ProgressAllFiles.SetRange32(0, nFiles);
  65. m_ProgressAllFiles.SetStep(1);
  66. m_ProgressAllFiles.SetPos(0);
  67. m_ProgressSingleFile.SetRange32(0, 100);
  68. m_ProgressSingleFile.SetStep(1);
  69. m_ProgressSingleFile.SetPos(0);
  70. }
  71. void CFileTransferProgressDlg::ResetSingleFileProgress()
  72. {
  73. m_ProgressSingleFile.SetPos(0);
  74. }
  75. void CFileTransferProgressDlg::StepAllFiles()
  76. {
  77. m_ProgressAllFiles.StepIt();
  78. }
  79. void CFileTransferProgressDlg::SetSingleFilePos(int nPos)
  80. {
  81. m_ProgressSingleFile.SetPos(nPos);
  82. }
  83. void CFileTransferProgressDlg::PumpMessages()
  84. {
  85. int nLoops = 0;
  86. MSG msg;
  87. while(::PeekMessage(&msg, m_hWnd, 0, 0, PM_REMOVE))
  88. {
  89. TranslateMessage(&msg);
  90. DispatchMessage(&msg);
  91. nLoops++;
  92. if(nLoops > 100)
  93. break;
  94. }
  95. }