HistoryCombo.h
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:4k
源码类别:

P2P编程

开发平台:

Visual C++

  1. /*
  2.  *  Openmysee
  3.  *
  4.  *  This program is free software; you can redistribute it and/or modify
  5.  *  it under the terms of the GNU General Public License as published by
  6.  *  the Free Software Foundation; either version 2 of the License, or
  7.  *  (at your option) any later version.
  8.  *
  9.  *  This program is distributed in the hope that it will be useful,
  10.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  *  GNU General Public License for more details.
  13.  *
  14.  *  You should have received a copy of the GNU General Public License
  15.  *  along with this program; if not, write to the Free Software
  16.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17.  *
  18.  */
  19. ////////////////////////////////////////////////////////////////////////////
  20. // File: HistoryCombo.h
  21. // Version: 2.1
  22. // Created: 09-Jul-2003
  23. //
  24. // Author: Paul S. Vickery
  25. // E-mail: paul@vickeryhome.freeserve.co.uk
  26. //
  27. // Implementation of CHistoryCombo which incorporates functionality to help
  28. // with Loading and Saving of history in a combo box
  29. //
  30. // You are free to use or modify this code, with no restrictions, other than
  31. // you continue to acknowledge me as the original author in this source code,
  32. // or any code derived from it.
  33. //
  34. // If you use this code, or use it as a base for your own code, it would be 
  35. // nice to hear from you simply so I know it's not been a waste of time!
  36. //
  37. // Copyright (c) 2001-2003 Paul S. Vickery
  38. //
  39. ////////////////////////////////////////////////////////////////////////////
  40. // Version History:
  41. //
  42. // Version 2.1 - 09-Jul-2003
  43. // =========================
  44. // Updated to support Unicode.
  45. //
  46. // Version 2 - 01-May-2002
  47. // =======================
  48. // Produced new version with changes as below:
  49. // * removed CBS_SORT on creation if specified
  50. // * added option to allow the sort style to be set if required
  51. // * fixed SetMaxHistoryItems, so it removes old entries from the list to 
  52. //   ensure that there are no more than the maximum. Also made SaveHistory
  53. //   remove redundant profile entries above the maximum.
  54. // * use WriteProfileString to remove profile entries rather than CRegKey.
  55. //
  56. // Version 1 - 12-Apr-2001
  57. // =======================
  58. // Initial version
  59. // 
  60. ////////////////////////////////////////////////////////////////////////////
  61. // PLEASE LEAVE THIS HEADER INTACT
  62. ////////////////////////////////////////////////////////////////////////////
  63. #if !defined(AFX_HISTORYCOMBO_H__EA3F7FA7_AA4D_11D4_A7CB_0000B48746CF__INCLUDED_)
  64. #define AFX_HISTORYCOMBO_H__EA3F7FA7_AA4D_11D4_A7CB_0000B48746CF__INCLUDED_
  65. #if _MSC_VER > 1000
  66. #pragma once
  67. #endif // _MSC_VER > 1000
  68. #ifndef __AFXADV_H__
  69. #include "afxadv.h" // needed for CRecentFileList
  70. #endif // ! __AFXADV_H__
  71. /////////////////////////////////////////////////////////////////////////////
  72. class CHistoryCombo : public CComboBox
  73. {
  74. public:
  75. CHistoryCombo(BOOL bAllowSortStyle = FALSE);
  76. public:
  77. public:
  78. int AddString(LPCTSTR lpszString);
  79. //{{AFX_VIRTUAL(CHistoryCombo)
  80. protected:
  81. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  82. virtual void PreSubclassWindow();
  83. //}}AFX_VIRTUAL
  84.  
  85. public:
  86. void StoreValue(BOOL bIgnoreIfEmpty = TRUE);
  87. void ClearHistory(BOOL bDeleteRegistryEntries = TRUE);
  88. void SetMaxHistoryItems(int nMaxItems);
  89. void SaveHistory(BOOL bAddCurrentItemtoHistory = TRUE);
  90. CString LoadHistory(LPCTSTR lpszSection, LPCTSTR lpszKeyPrefix, BOOL bSaveRestoreLastCurrent = TRUE, LPCTSTR lpszKeyCurItem = NULL);
  91. CString LoadHistory(CRecentFileList* pListMRU, BOOL bSelectMostRecent = TRUE);
  92. virtual ~CHistoryCombo();
  93.  
  94. protected:
  95. CString m_sSection;
  96. CString m_sKeyPrefix;
  97. CString m_sKeyCurItem;
  98. BOOL m_bSaveRestoreLastCurrent;
  99. int m_nMaxHistoryItems;
  100. BOOL m_bAllowSortStyle;
  101. //{{AFX_MSG(CHistoryCombo)
  102. // NOTE - the ClassWizard will add and remove member functions here.
  103. //}}AFX_MSG
  104. DECLARE_MESSAGE_MAP()
  105. };
  106. /////////////////////////////////////////////////////////////////////////////
  107. //{{AFX_INSERT_LOCATION}}
  108. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  109. #endif // !defined(AFX_HISTORYCOMBO_H__EA3F7FA7_AA4D_11D4_A7CB_0000B48746CF__INCLUDED_)