📄 shelltree.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 + -