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

Ftp客户端

开发平台:

Visual C++

  1. // ImageStatusBar.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 "ImageStatusBar.h"
  13. #ifdef _DEBUG
  14. #define new DEBUG_NEW
  15. #undef THIS_FILE
  16. static char THIS_FILE[] = __FILE__;
  17. #endif
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CImageStatusBar
  20. CImageStatusBar::CImageStatusBar()
  21. {
  22. }
  23. CImageStatusBar::~CImageStatusBar()
  24. {
  25. }
  26. BEGIN_MESSAGE_MAP(CImageStatusBar, CStatusBar )
  27. //{{AFX_MSG_MAP(CImageStatusBar)
  28. ON_WM_CREATE()
  29. //}}AFX_MSG_MAP
  30. END_MESSAGE_MAP()
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CImageStatusBar message handlers
  33. int CImageStatusBar::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  34. {
  35. if (CStatusBar::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. //create progress ctrl .
  41. m_ProCtrl.Create( PBS_SMOOTH | WS_CHILD | WS_VISIBLE ,rect , this , 0x223 ) ;
  42. //create static ctrl.
  43. m_DisCtrl.Create( "" , SS_RIGHT | WS_CHILD |WS_VISIBLE 
  44. , rect , this , 0x224 ) ;
  45. m_Speed.Create( "0 k/s" , SS_RIGHT | WS_CHILD |WS_VISIBLE 
  46. , rect , this , 0x225 ) ;
  47. //set range .
  48. SetProgressRange( 0 , 100 ) ;
  49. //init pos .
  50. SetPos( 0 ) ;
  51. return 0;
  52. }
  53. /****************************************************
  54. ** @Description
  55. ** this function set the child ctrl pos .
  56. **
  57. ** @Parameter
  58. ** int iLength : the status bar length .
  59. **
  60. ** @Return:
  61. ** @Author: JHM
  62. ** e-mail: tablejiang@21cn.com
  63. ** @Date: 2001 3 26
  64. ****************************************************/
  65. BOOL CImageStatusBar::SetControlPos(int iLength)
  66. {
  67. RECT rect ;
  68. if( iLength > 200 )
  69. {
  70. SetRect( &rect , iLength - OFFSET - PROGRESS_LENGTH , 0 , 
  71. iLength - OFFSET , 18 ) ;
  72. m_ProCtrl.MoveWindow( &rect ) ;
  73. SetRect( &rect , iLength - OFFSET - PROGRESS_LENGTH - 350 , 1 , iLength - OFFSET - PROGRESS_LENGTH - 20 , 16 ) ;
  74. m_DisCtrl.MoveWindow( &rect ) ;
  75. SetRect( &rect , iLength - OFFSET + 10 , 1 , iLength - OFFSET + 80 , 18 ) ;
  76. m_Speed.MoveWindow( &rect ) ;
  77. }
  78. else
  79. {
  80. SetRect( &rect , 0 , 0 , 0 , 0 ) ;
  81. m_ProCtrl.MoveWindow( &rect ) ;
  82. m_DisCtrl.MoveWindow( &rect ) ;
  83. m_Speed.MoveWindow( &rect ) ;
  84. }
  85. return true ;
  86. }
  87. /****************************************************
  88. ** @Description
  89. ** set display string .
  90. **
  91. ** @Parameter
  92. **
  93. **
  94. ** @Return:
  95. ** @Author: JHM
  96. ** e-mail: tablejiang@21cn.com
  97. ** @Date: 2001 3 26
  98. ****************************************************/
  99. void CImageStatusBar::SetDisplayString(LPCTSTR szString)
  100. {
  101. m_DisCtrl.SetWindowText( szString ) ;
  102. }
  103. /****************************************************
  104. ** @Description
  105. **
  106. **
  107. ** @Parameter
  108. **
  109. **
  110. ** @Return:
  111. ** @Author: JHM
  112. ** e-mail: tablejiang@21cn.com
  113. ** @Date: 2001 3 26
  114. ****************************************************/
  115. BOOL CImageStatusBar::SetPos(int iPos)
  116. {
  117. return m_ProCtrl.SetPos( iPos ) ;
  118. }
  119. /****************************************************
  120. ** @Description
  121. **
  122. **
  123. ** @Parameter
  124. **
  125. **
  126. ** @Return:
  127. ** @Author: JHM
  128. ** e-mail: tablejiang@21cn.com
  129. ** @Date: 2001 3 26
  130. ****************************************************/
  131. BOOL CImageStatusBar::SetProgressRange(int iStart, int iEnd)
  132. {
  133. m_ProCtrl.SetRange( iStart , iEnd ) ;
  134. return true ;
  135. }
  136. /****************************************************
  137. ** @Description
  138. **
  139. **
  140. ** @Parameter
  141. **
  142. **
  143. ** @Return:
  144. ** @Author: JHM
  145. ** e-mail: tablejiang@21cn.com
  146. ** @Date: 2001 3 26
  147. ****************************************************/
  148. BOOL CImageStatusBar::SetSpeed(int iSpeed)
  149. {
  150. char szSpeed[MAX_PATH] ;
  151. char szDisplay[MAX_PATH] ;
  152. //change the "bytes/s"  to  "k/s" .
  153. int iNum = iSpeed / 1024 ;
  154. itoa( iNum , szSpeed , 10 ) ;
  155. sprintf( szDisplay , "%s k/s" , szSpeed ) ;
  156. m_Speed.SetWindowText( szDisplay ) ;
  157. return true ;
  158. }