Abstract
The CHistoryComboEx based on the class ( CHistoryCombo) by Paul S. Vickery, which enables you to read and save the items of a ComboBox from and to the Registry. You can use it also to display the contents of a CRecentFileList object. CHistoryComboEx has the same functions of CHistoryCombo, but instead of the function (AddString()), I have added two new implements to the function (InsertItem()).How to use it?
- Copy (HistoryComboEx.cpp and HistoryComboEx.h) to the folder of
your project. - Click on Project\Add To Project\Files… and then select the two files of
our class and insert them into your project. - Add programmatically or using the “Resource Editor” an Extended
ComboBox control to your dialog. - Using the “Class Wizard”, add a member variable of type CComboBoxEx to your Extended ComboBox control. (I’ll assume that your variable name is “m_cbeCtrl”)
- Now open the header file of your dialog-box. Firstly, add this line to the
top of it:#include "HistoryComboEx.h"
and then change this line:
CComboBoxEx m_cbeCtrl;
to:
CHistoryComboEx m_cbeCtrl;
- Add the following line to the end of your “OnInitDialog()” or “OnInitialUpdate()” function:
m_cbeCtrl.LoadHistory("Addresses", "HistoryComboEx");
This line will add key names “Addresses” to the default key of your application in the Registry. Note: You can change “Addresses” and “HistoryComboEx” to any other values.
- Add the following line to the handler, which will be running, when your application is going to be closed. (OnOK() for example!):
m_cbeCtrl.SaveHistory();
That’s all!
Functions
Here I will write a summary for the functions of CHistoryComboEx. For details please see “HistoryComboEx.cpp”. Note: The documentation is the same of that one by Paul S. Vickery’s
“CHistoryCombo”.
CString LoadHistory( LPCTSTR lpszSection, LPCTSTR lpszKeyPrefix, BOOL bSaveRestoreLastCurrent = TRUE, LPCTSTR lpszKeyCurItem = NULL); CString LoadHistory( CRecentFileList* pListMRU, BOOL bSelectMostRecent = TRUE); void SaveHistory(BOOL bAddCurrentItemtoHistory = TRUE); int InsertItem(const COMBOBOXEXITEM *pCBItem) int InsertItem(CString strItem) void SetMaxHistoryItems(int nMaxItems); void ClearHistory(BOOL bDeleteRegistryEntries = TRUE);
Example
The Demo shows you how to use “CHistoryComboEx” to save and load URLs.
If you have any questions or comments, please let me know!