Introduction
Sometimes, when we need a user to select a file or folder
or ODBC driver, we would have to create two controls, an edit control for
entering the text, and a browse button that would bring up a dialog for actually
choosing the file or folder or etc. So I thought why not combine the two
controls into one. The
CWtlEditBrowserCtrl
class is the result. The
class definition and implementation are in the files
WtlEditBrowserCtrl.h and
WtlEditBrowserCtrl.cpp which are
included in the demo project.
Using the Control
To use this control in your application:
- Add the WtlEditBrowserCtrl.h and WtlEditBrowserCtrl.cpp
files to your project.
- Design the dialog and add the Edit control
- Add the WtlEditBrowserCtrl.h header file to your project
- Assign a
CWtlEditBrowserCtrl
to your editbox.
- In
OnInitDialog()
, subclass CWtlEditBrowserCtrl
control to ID using the SubclassWindow
method.
#include "WtlEditBrowserCtrl.h"
class CMainDlg : public CDialogImpl<CMainDlg>
{
BEGIN_MSG_MAP(CMainDlg)
...
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
REFLECT_NOTIFICATIONS()
END_MSG_MAP()
...
LRESULT OnInitDialog(UINT , WPARAM ,
LPARAM , BOOL& );
...
CWtlEditBrowserCtrl m_Path;
...
};
LRESULT CMainDlg::OnInitDialog(UINT , WPARAM ,
LPARAM , BOOL& )
{
...
m_Path.SubclassWindow( ::GetDlgItem( m_hWnd, IDC_EDIT1 ) );
...
}
Requirements
You will require the WTL Libraries, these can be downloaded from the
microsoft site.
Acknowledgements
I'd like to thank Pete Arends for his original controls :-
I'd also like to thank the others who have given feedback, made suggestions,
and helped this become what it is today:
Contacting the Author
Ilya Solnyshkin, E-mail: isolnyshkin@yahoo.com, Web: http://www.printsniffer.com/