⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shelltree.h

📁 一个完整的编辑器的代码(很值得参考
💻 H
字号:

#ifndef __SHELLTREE_H__
#define __SHELLTREE_H__

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// ShellTree.h : header file
//

#include "ShellPidl.h"

#define SHLT_FOLDERS 0x00000001
#define SHLT_FILES 0x00000002
#define SHLT_LINKS 0x00000004
#define SHLT_REFRESHONEXPAND 0x00010000

#define SHLT_GETFLAGS (WM_USER + 1)
#define SHLT_MODIFYFLAGS (WM_USER + 2)
#define SHLT_MODIFYPATTERN (WM_USER + 3)

/////////////////////////////////////////////////////////////////////////////
// CShellTree window
//

#pragma warning ( disable : 4512 )
class CShellTree : public CTreeCtrl, public CShellPidl
  {
public :
    enum FindAttribs
    {
      type_drive, type_folder
    };

    // Construction
public :
    CShellTree ();

    // Attributes
public :
    DWORD m_flags;
    CList<CString, LPCTSTR> m_patterns;

    // Operations
public :
    DWORD GetFlags () const;
    void ModifyFlags (DWORD dwRemove, DWORD dwAdd);
    void ModifyPattern (CString pattern);
    void PopulateTree (LPCTSTR lpPath);
    void PopulateTree ();
    void PopulateTree (int nFolder);
    void OnFolderExpanding (NMHDR * pNMHDR, LRESULT * pResult);
    void GetContextMenu (NMHDR * pNMHDR, LRESULT * pResult);
    BOOL OnFolderSelected (NMHDR * pNMHDR, LRESULT * pResult, CString & szFolderPath);
    void OnDeleteShellItem (NMHDR * pNMHDR, LRESULT * pResult);
    void EnableImages ();
    BOOL GetPointedFolderPath (const CPoint & point, CString & szFolderPath);
    BOOL GetSelectedFolderPath (CString & sItemPath);
    bool SearchTree (HTREEITEM treeNode, CString szSearchName, FindAttribs attr);
    void TunnelTree (CString szFindPath);
    LPSHELLFOLDER GetParentShellFolder (HTREEITEM folderNode);
    LPITEMIDLIST GetRelativeIDLIST (HTREEITEM folderNode);
    LPITEMIDLIST GetFullyQualifiedID (HTREEITEM folderNode);
    void FindTreePidl (HTREEITEM nextNode, HTREEITEM & folderNode, LPLVITEMDATA lplvid, bool & valid);

    // Overrides
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CShellTree)
    //}}AFX_VIRTUAL

    // Implementation
public :
    virtual ~CShellTree ();

    // Generated message map functions
protected :
    void DeleteChildren (HTREEITEM item);
    void FillTreeView (LPSHELLFOLDER lpsf, LPITEMIDLIST lpifq, HTREEITEM hParent);
    void GetNormalAndSelectedIcons (LPITEMIDLIST lpifq, LPTV_ITEM lptvitem);
    static int CALLBACK TreeViewCompareProc (LPARAM, LPARAM, LPARAM);

    //{{AFX_MSG(CShellTree)
    afx_msg LRESULT OnGetFlags (WPARAM wParam, LPARAM lParam);
    afx_msg LRESULT OnModifyFlags (WPARAM wParam, LPARAM lParam);
    afx_msg LRESULT OnModifyPattern (WPARAM wParam, LPARAM lParam);
    //}}AFX_MSG

    DECLARE_MESSAGE_MAP ()
  };
#pragma warning ( default : 4512 )

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // __SHELLTREE_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -