Credit and Acknowledgments
The original author of FileTree MFC control is PJ Naughter. This control and article can be found at http://www.codeproject.com/treectrl/filetree.asp
Overview
I needed a FileTree control to use in an ATL/WTL project and I decided to port MFC Control to WTL. The following ATL files contain the port:
- FileFind.h/FileFind.cpp - Contain the
CFileFind
class and implementation for WTL which performs local file searches
- WtlFileTreeCtrl.h/WtlFileTreeCtrl.cpp - Contain the
CWtlFileTreeCtrl
class and implementation for WTL
How to use the control in your WTL App:
- Create a WTL Project
- Design the dialog and add the Tree control
- Add the WtlFileTreeCtrl.h header file to your project
- Assign a
CWtlFileTreeCtrl
to your tree.
- In
OnInitDialog()
, subclass tree control (CWtlFileTreeCtrl
) to ID using the SubclassWindow
method.
- In your dialog, don't forget to add the macro
REFLECT_NOTIFICATIONS
which allows the CWtlFileTreeCtrl
to get messages like TVN_ITEMEXPANDING
.
#include "WtlFileTreeCtrl.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& );
...
CWtlFileTreeCtrl m_Tree;
...
};
LRESULT CMainDlg::OnInitDialog(UINT , WPARAM ,
LPARAM , BOOL& )
{
...
m_Tree.SubclassWindow( ::GetDlgItem( m_hWnd, IDC_TREE1 ) );
...
}
Requirements
You will require the WTL Libraries, these can be downloaded from the microsoft site.
Note - This control uses the STL std::string
class and the STL std::vector
template class.
Contacting the Author
Ilya Solnyshkin, E-mail: isolnyshkin@yahoo.com, Web: http://www.printsniffer.com/