ProgressStatusCtrl.cpp
上传用户:tjfeida
上传日期:2013-03-10
资源大小:1917k
文件大小:4k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. // ProgressStatusCtrl.cpp : implementation file
  2. //
  3. /*********************************************
  4. **该文件是属于WolfFTP工程中的。如果有什么问题
  5. **请联系
  6. **         tablejiang@21cn.com
  7. **或者访问
  8. **         http://wolfftp.51.net
  9. **以得到最新的支持。
  10. *********************************************/
  11. #include "stdafx.h"
  12. #include "ProgressStatusCtrl.h"
  13. #ifdef _DEBUG
  14. #define new DEBUG_NEW
  15. #undef THIS_FILE
  16. static char THIS_FILE[] = __FILE__;
  17. #endif
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CProgressStatusCtrl
  20. CProgressStatusCtrl::CProgressStatusCtrl()
  21. {
  22. }
  23. CProgressStatusCtrl::~CProgressStatusCtrl()
  24. {
  25. }
  26. BEGIN_MESSAGE_MAP(CProgressStatusCtrl, CStatusBarCtrl)
  27. //{{AFX_MSG_MAP(CProgressStatusCtrl)
  28. ON_WM_CREATE()
  29. //}}AFX_MSG_MAP
  30. END_MESSAGE_MAP()
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CProgressStatusCtrl message handlers
  33. int CProgressStatusCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  34. {
  35. if (CStatusBarCtrl ::OnCreate(lpCreateStruct) == -1)
  36. return -1;
  37. // TODO: Add your specialized creation code here
  38. RECT rect ;
  39. SetRect( &rect , 0 , 0 , 0 , 0 ) ;
  40. m_ProCtrl.Create( PBS_SMOOTH | WS_CHILD | WS_VISIBLE ,rect , this , 0x323 ) ;
  41. m_DisCtrl.Create( "" , SS_RIGHT | WS_CHILD |WS_VISIBLE 
  42. , rect , this , 0x324 ) ;
  43. m_Speed.Create( "  k/s" , SS_RIGHT | WS_CHILD |WS_VISIBLE 
  44. , rect , this , 0x225 ) ;
  45. SetProgressRange( 0 , 100 ) ;
  46. SetPos( 0 ) ;
  47. return 0;
  48. }
  49. /****************************************************
  50. ** @Description
  51. **
  52. **
  53. ** @Parameter
  54. **
  55. **
  56. ** @Return:
  57. ** @Author: JHM
  58. ** e-mail: tablejiang@21cn.com
  59. ** @Date: 2001 3 26
  60. ****************************************************/
  61. BOOL CProgressStatusCtrl::SetControlPos(int iLength)
  62. {
  63. RECT rect ;
  64. if( iLength > 200 )
  65. {
  66. SetRect( &rect , iLength - CTRL_OFFSET - CTRL_PROGRESS_LENGTH , 3 , 
  67. iLength - CTRL_OFFSET , 18 ) ;
  68. m_ProCtrl.MoveWindow( &rect ) ;
  69. SetRect( &rect , iLength - CTRL_OFFSET - CTRL_PROGRESS_LENGTH - 350 , 3 , 
  70. iLength - CTRL_OFFSET - CTRL_PROGRESS_LENGTH - 20 , 16 ) ;
  71. m_DisCtrl.MoveWindow( &rect ) ;
  72. SetRect( &rect , iLength - CTRL_OFFSET + 10 , 3 , iLength - CTRL_OFFSET + 80 , 18 ) ;
  73. m_Speed.MoveWindow( &rect ) ;
  74. }
  75. else
  76. {
  77. SetRect( &rect , 0 , 0 , 0 , 0 ) ;
  78. m_ProCtrl.MoveWindow( &rect ) ;
  79. m_DisCtrl.MoveWindow( &rect ) ;
  80. m_Speed.MoveWindow( &rect ) ;
  81. }
  82. return true ;
  83. }
  84. /****************************************************
  85. ** @Description
  86. **
  87. **
  88. ** @Parameter
  89. **
  90. **
  91. ** @Return:
  92. ** @Author: JHM
  93. ** e-mail: tablejiang@21cn.com
  94. ** @Date: 2001 3 26
  95. ****************************************************/
  96. void CProgressStatusCtrl::SetDisplayString(LPCTSTR szString)
  97. {
  98. m_DisCtrl.SetWindowText( szString ) ;
  99. }
  100. /****************************************************
  101. ** @Description
  102. **
  103. **
  104. ** @Parameter
  105. **
  106. **
  107. ** @Return:
  108. ** @Author: JHM
  109. ** e-mail: tablejiang@21cn.com
  110. ** @Date: 2001 3 26
  111. ****************************************************/
  112. BOOL CProgressStatusCtrl::SetPos(int iPos)
  113. {
  114. return m_ProCtrl.SetPos( iPos ) ;
  115. }
  116. /****************************************************
  117. ** @Description
  118. **
  119. **
  120. ** @Parameter
  121. **
  122. **
  123. ** @Return:
  124. ** @Author: JHM
  125. ** e-mail: tablejiang@21cn.com
  126. ** @Date: 2001 3 26
  127. ****************************************************/
  128. BOOL CProgressStatusCtrl::SetProgressRange(int iStart, int iEnd)
  129. {
  130. m_ProCtrl.SetRange( iStart , iEnd ) ;
  131. return true ;
  132. }
  133. /****************************************************
  134. ** @Description
  135. **
  136. **
  137. ** @Parameter
  138. **
  139. **
  140. ** @Return:
  141. ** @Author: JHM
  142. ** e-mail: tablejiang@21cn.com
  143. ** @Date: 2001 3 26
  144. ****************************************************/
  145. BOOL CProgressStatusCtrl::SetSpeed(int iSpeed)
  146. {
  147. char szSpeed[MAX_PATH] ;
  148. char szDisplay[MAX_PATH] ;
  149. int iNum = iSpeed / 1024 ;
  150. itoa( iNum , szSpeed , 10 ) ;
  151. sprintf( szDisplay , "%s k/s" , szSpeed ) ;
  152. m_Speed.SetWindowText( szDisplay ) ;
  153. return true ;
  154. }