S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

SeaShell - More Explorer controls

Posted on 2010-03-24 17:15 S.l.e!ep.¢% 阅读(255) 评论(0)  编辑 收藏 引用 所属分类: VC
37 votes for this article.
Popularity: 7.25 Rating: 4.63 out of 5

1

2

3
2 votes, 12.5%
4
14 votes, 87.5%
5
Is your email address OK? You are signed up for our newsletters but your email address is either unconfirmed, or has not been reconfirmed in a long time. Please click here to have a confirmation email sent so we can confirm your email address and start sending you newsletters again.
  • Download demo project - 277 Kb

    Sample Image - seashell.jpg

    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

    								//
    								 Point the combo box to the tree control(optional)
       m_cbShell.SetTreeCtrlWnd(m_tcShell.GetSafeHwnd());
    
       // Point the tree control to the list control(optional)
       m_tcShell.SetListCtrlWnd(m_lcShell.GetSafeHwnd());
    
       // Point the tree control to the combo box(optional)
       m_tcShell.SetComboBoxWnd(m_cbShell.GetSafeHwnd());
    
       // Populate the tree starting from the desktop
       m_tcShell.LoadFolderItems();
    
       // or populate the tree starting from a system file path
    // m_tcShell.LoadFolderItems(_T("C:\\folder1\\folder2"));
    

    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.

  • License

    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here

    About the Author

    Philip Oldaker


    Member

    Location: New Zealand New Zealand

    Other popular Shell and IE programming articles:


    只有注册用户登录后才能发表评论。
    网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理