Download demo project - 277 Kb
Introduction
SeaShell
contains a set of classes that provides three main controls
CIEShellTreeCtrl
CIEShellListCtrl
CIEShellComboBox
They can be used independently or integrated as in Explorer
Features
- Full drag and drop support including right button and drag and drop
to/from windows explorer
- Context menu support including
Owner Draw,SendTo
and the new OpenWith(W2K only) menus
- Auto refresh from both tree and list controls
- Filter support using wild cards eg. *.cpp *.htm or based on file type
- Uses settings from explorer to show compressed files in a different color,double click to open file etc.
- Complete integration between all three controls
History
First version so expect problems
Usage
First you must include SeaShellExt.h
in your stdafx.h
file and you will need all the files included in the sub folder SeaShellExt
except for the frame and view files if you intend to use it only
in a dialog box.
The demo shows you how to use it in a frame window and a dialog box.
This is what you need to do to add all the controls to a dialog box
Add this code to the OnInitDIalog function
m_cbShell.SetTreeCtrlWnd(m_tcShell.GetSafeHwnd());
m_tcShell.SetListCtrlWnd(m_lcShell.GetSafeHwnd());
m_tcShell.SetComboBoxWnd(m_cbShell.GetSafeHwnd());
m_tcShell.LoadFolderItems();
To hook up the controls in CView check out the demo it comes with
classes CIEShellTreeView
and CIEShellListView
that you can use.
The about box has a demo of the list control without shell support
that adds a progress bar to a column in a similar fashion to napster if
any one has seen it. Thanks to Chris Maunder for his CTextProgressCtrl
which I slightly modified.
There is limited support for CHtmlView
to show the web browser when you click on the Internet Explorer folder.
But this won't work in in a dialog.
Acknowledgments
It also includes some files form other sources most notably
CoolMenu from Paul DiLascia(MSJ)
ShellContextMenu from Oz Solomonovich(WndTabs)
InPlaceEdit from Zafir Anjum (Codeguru)
and some other snippets, but I can't remember from where.
Thanks guys
If anyone wants to convert it to an MFC extension DLL there is a macro CTRL_EXT_CLASS that is used in most classes that will help.
One final note I compiled using the platform SDK for W2K but I have included
a file W2KFix.h that defines the COM interfaces that it needs.