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

Ftp客户端

开发平台:

Visual C++

  1. // HistroyCombo.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 "HistroyCombo.h"
  13. #ifdef _DEBUG
  14. #define new DEBUG_NEW
  15. #undef THIS_FILE
  16. static char THIS_FILE[] = __FILE__;
  17. #endif
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CHistroyCombo
  20. CHistroyCombo::CHistroyCombo()
  21. {
  22. }
  23. CHistroyCombo::~CHistroyCombo()
  24. {
  25. m_ImageList.Detach();
  26. m_ImageList.m_hImageList = NULL ;
  27. }
  28. BEGIN_MESSAGE_MAP(CHistroyCombo, CComboBoxEx)
  29. //{{AFX_MSG_MAP(CHistroyCombo)
  30. ON_CONTROL_REFLECT(CBN_CLOSEUP, OnCloseup)
  31. //}}AFX_MSG_MAP
  32. END_MESSAGE_MAP()
  33. /////////////////////////////////////////////////////////////////////////////
  34. // CHistroyCombo message handlers
  35. /****************************************************
  36. ** @Description
  37. ** Get system image list.
  38. **
  39. ** @Parameter
  40. **
  41. **
  42. ** @Return:
  43. ** @Author: JHM
  44. ** e-mail: tablejiang@21cn.com
  45. ** @Date: 2001 3 26
  46. ****************************************************/
  47. BOOL CHistroyCombo::GetSysImgList()
  48. {
  49. SHFILEINFO shFinfo;
  50. HIMAGELIST hImgList = NULL;
  51. if ( GetImageList( ) )
  52. m_ImageList.Detach();
  53. hImgList = (HIMAGELIST)SHGetFileInfo( "C:\",
  54.   0,
  55.   &shFinfo,
  56.   sizeof( shFinfo ),
  57.   SHGFI_SYSICONINDEX | 
  58.   SHGFI_SMALLICON );
  59. if ( !hImgList )
  60. {
  61. return FALSE;
  62. }
  63. m_ImageList.m_hImageList = hImgList ;
  64. SetImageList( &m_ImageList ) ;
  65. return TRUE;   // OK
  66. }
  67. /****************************************************
  68. ** @Description
  69. **
  70. **
  71. ** @Parameter
  72. **
  73. **
  74. ** @Return:
  75. ** @Author: JHM
  76. ** e-mail: tablejiang@21cn.com
  77. ** @Date: 2001 3 26
  78. ****************************************************/
  79. void CHistroyCombo::OnCloseup() 
  80. {
  81. // TODO: Add your control notification handler code here
  82. }
  83. /****************************************************
  84. ** @Description
  85. ** add a history path to this combox
  86. **
  87. ** @Parameter
  88. **
  89. **
  90. ** @Return:
  91. ** @Author: JHM
  92. ** e-mail: tablejiang@21cn.com
  93. ** @Date: 2001 3 26
  94. ****************************************************/
  95. BOOL CHistroyCombo::AddString(LPCTSTR strPath)
  96. {
  97. COMBOBOXEXITEM cbi;
  98. CString DisplayString = strPath ;
  99. cbi.mask = CBEIF_TEXT;
  100. cbi.iItem = 0 ;
  101. cbi.pszText = (LPTSTR)(LPCTSTR)DisplayString ;
  102. cbi.cchTextMax = DisplayString.GetLength() ;
  103. //cbi.iImage = iIcon ;
  104. //cbi.iSelectedImage = iSelIcon ;
  105. //cbi.iOverlay = 0 ;
  106. InsertItem( &cbi ) ;
  107. return true ;
  108. }
  109. /****************************************************
  110. ** @Description
  111. ** select specify path .
  112. **
  113. ** @Parameter
  114. **
  115. **
  116. ** @Return:
  117. ** @Author: JHM
  118. ** e-mail: tablejiang@21cn.com
  119. ** @Date: 2001 3 26
  120. ****************************************************/
  121. BOOL CHistroyCombo::SetItemSelect(LPCTSTR strItem)
  122. {
  123. CString strFind = strItem ;
  124. COMBOBOXEXITEM cbi;
  125. int iCount = GetCount( ) ;
  126. int i ;
  127. char findBuffer[MAX_PATH] ;
  128. if( strFind.GetLength() != 1 && ( strFind.Right( 1 ) == '\' || strFind.Right( 1 ) == '/' ) )
  129. {
  130. strFind.SetAt( strFind.GetLength() - 1 , '' ) ;
  131. }
  132. //find the path string .
  133. for( i = 0 ; i < iCount ; i ++ )
  134. {
  135. cbi.mask = CBEIF_TEXT ;
  136. cbi.iItem = i ;
  137. cbi.pszText = findBuffer ;
  138. cbi.cchTextMax = MAX_PATH ;
  139. GetItem( &cbi ) ;
  140. if( strcmp( cbi.pszText , strFind ) == 0 )
  141. {
  142. SetCurSel( i ) ;
  143. return true ;
  144. }
  145. }
  146. return false ;
  147. }
  148. /****************************************************
  149. ** @Description
  150. ** get selected text .
  151. **
  152. ** @Parameter
  153. **
  154. **
  155. ** @Return:
  156. ** @Author: JHM
  157. ** e-mail: tablejiang@21cn.com
  158. ** @Date: 2001 3 26
  159. ****************************************************/
  160. BOOL CHistroyCombo::GetSelectText(char *szBuffer)
  161. {
  162. int iCurSel = GetCurSel( ) ;
  163. if( iCurSel == CB_ERR )
  164. return false ;
  165. int iRet = GetLBText( iCurSel , szBuffer ) ;
  166. if( iRet == CB_ERR )
  167. return false ;
  168. return true ;
  169. }
  170. /****************************************************
  171. ** @Description
  172. ** delete all item .
  173. **
  174. ** @Parameter
  175. **
  176. **
  177. ** @Return:
  178. ** @Author: JHM
  179. ** e-mail: tablejiang@21cn.com
  180. ** @Date: 2001 3 26
  181. ****************************************************/
  182. BOOL CHistroyCombo::DeleteAllItem()
  183. {
  184. int iCount = GetCount( ) ;
  185. if( iCount == CB_ERR )
  186. return false ;
  187. for( int i = 0 ; i < iCount ; i ++ )
  188. {
  189. DeleteString( 0 ) ;
  190. }
  191. return true ;
  192. }