📄 filetreectrl.h
字号:
void SetAllowDelete(BOOL bAllowDelete) { m_bAllowDelete = bAllowDelete; };
BOOL GetAllowDelete() const { return m_bAllowDelete; };
void SetFlags(DWORD dwFlags);
void SetDriveHideFlags(DWORD dwDriveHideFlags);
DWORD GetDriveHideFlags() const { return m_dwDriveHideFlags; };
void SetFileHideFlags(DWORD dwFileHideFlags);
DWORD GetFileHideFlags() const { return m_dwFileHideFlags; };
void SetFileNameMask(const CString& sFileNameMask);
CString GetFileNameMask() const { return m_sFileNameMask; };
BOOL GetChecked(HTREEITEM hItem) const;
BOOL SetChecked(HTREEITEM hItem, BOOL fCheck);
void SetNetworkItemTypes(DWORD dwTypes);
DWORD GetNetworkItemTypes() const { return m_dwNetworkItemTypes; };
void SetShowDriveLabels(BOOL bShowDriveLabels);
BOOL GetShowDriveLabels() const { return m_bShowDriveLabels; };
COLORREF GetCompressedColor() const { return m_rgbCompressed; };
void SetCompressedColor(COLORREF rgbCompressed);
BOOL GetUsingDifferentColorForCompressed() const { return m_bShowCompressedUsingDifferentColor; };
void SetUsingDifferentColorForCompressed(BOOL bShowCompressedUsingDifferentColor);
COLORREF GetEncryptedColor() const { return m_rgbEncrypted; };
void SetEncryptedColor(COLORREF rgbEncrypted);
BOOL GetUsingDifferentColorForEncrypted() const { return m_bShowEncryptedUsingDifferentColor; };
void SetUsingDifferentColorForEncrypted(BOOL bShowEncryptedUsingDifferentColor);
HideFileExtension GetShowFileExtensions() const { return m_FileExtensions; };
void SetShowFileExtensions(HideFileExtension FileExtensions);
BOOL GetShowMyComputer() const { return m_bShowMyComputer; };
void SetShowMyComputer(BOOL bShowMyComputer);
BOOL GetShowRootedFolder() const { return m_bShowRootedFolder; };
void SetShowRootedFolder(BOOL bShowRootedFolder);
void SetAutoRefresh(BOOL bAutoRefresh);
BOOL GetAutoRefresh() const { return m_bAutoRefresh; };
virtual CString ItemToPath(HTREEITEM hItem) const;
virtual HTREEITEM PathToItem(const CString& sPath) const;
virtual BOOL IsFile(HTREEITEM hItem);
virtual BOOL IsFolder(HTREEITEM hItem);
virtual BOOL IsDrive(HTREEITEM hItem);
virtual BOOL IsCompressed(HTREEITEM hItem);
virtual BOOL IsEncrypted(HTREEITEM hItem);
virtual BOOL IsShared(const CString& sPath);
virtual BOOL IsFile(const CString& sPath);
virtual BOOL IsFolder(const CString& sPath);
virtual BOOL IsDrive(const CString& sPath);
virtual BOOL IsCompressed(const CString& sPath);
virtual BOOL IsEncrypted(const CString& sPath);
virtual BOOL Rename(HTREEITEM hItem);
virtual BOOL ShowProperties(HTREEITEM hItem);
virtual BOOL Delete(HTREEITEM hItem);
virtual BOOL Open(HTREEITEM hItem);
virtual void PopulateTree();
virtual void UpOneLevel();
virtual void Refresh();
virtual BOOL GoBack();
virtual BOOL CanGoBack() const { return m_PrevItems.GetSize() != 0; };
virtual BOOL GoForward();
virtual BOOL CanGoForward() const { return m_NextItems.GetSize() != 0; };
virtual int GetMaxHistory() const { return m_nMaxHistory; };
virtual void SetMaxHistory(int nMaxHistory);
int GetBackSize() const;
CString GetBackItemText(int nBack) const;
int GetForwardSize() const;
CString GetForwardItemText(int nForward) const;
void CollapseExpandBranch(HTREEITEM hti, int nAction);
void Collapseall();
void Expandall();
void Clear();
//Debug / Assert help
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
//{{AFX_MSG(CTreeFileCtrl)
afx_msg void OnProperties();
afx_msg void OnUpdateProperties(CCmdUI* pCmdUI);
afx_msg void OnRename();
afx_msg void OnUpdateRename(CCmdUI* pCmdUI);
afx_msg void OnOpen();
afx_msg void OnUpdateOpen(CCmdUI* pCmdUI);
afx_msg void OnDelete();
afx_msg void OnUpdateDelete(CCmdUI* pCmdUI);
afx_msg void OnRefresh();
afx_msg void OnUpOneLevel();
afx_msg void OnUpdateUpOneLevel(CCmdUI* pCmdUI);
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnBack();
afx_msg void OnUpdateBack(CCmdUI* pCmdUI);
afx_msg void OnForward();
afx_msg void OnUpdateForward(CCmdUI* pCmdUI);
afx_msg void OnDestroy();
//}}AFX_MSG
afx_msg BOOL OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnItemExpanding(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnBeginLabelEdit(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnRclick(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnBeginDrag(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnSelChanged(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg BOOL OnDeleteItem(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg LRESULT OnChange(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
DECLARE_DYNCREATE(CTreeFileCtrl)
//{{AFX_VIRTUAL(CTreeFileCtrl)
virtual BOOL PreTranslateMessage(MSG* pMsg);
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
//Methods
virtual void DisplayPath(const CString& sPath, HTREEITEM hParent, BOOL bUseSetRedraw=TRUE);
virtual void DisplayDrives(HTREEITEM hParent, BOOL bUseSetRedraw=TRUE);
virtual int GetIconIndex(const CString& sFilename);
virtual int GetIconIndex(HTREEITEM hItem);
virtual int GetSelIconIndex(const CString& sFilename);
virtual int GetSelIconIndex(HTREEITEM hItem);
virtual int GetIconIndex(LPITEMIDLIST lpPIDL);
virtual int GetSelIconIndex(LPITEMIDLIST lpPIDL);
virtual BOOL HasGotSubEntries(const CString& sDirectory);
virtual BOOL HasChildWithText(HTREEITEM hParent, const CString& sText);
virtual HTREEITEM InsertFileItem(HTREEITEM hParent, CTreeFileCtrlItemInfo* pItem, BOOL bShared, int nIcon, int nSelIcon, BOOL bCheckForChildren);
virtual HTREEITEM FindSibling(HTREEITEM hParent, const CString& sItem) const;
virtual BOOL DriveHasRemovableMedia(const CString& sPath);
virtual BOOL IsDropSource(HTREEITEM hItem);
BOOL IsDragging();
BOOL IsExpanded(HTREEITEM hItem);
virtual HTREEITEM GetDropTarget(HTREEITEM hItem);
void EndDragging(BOOL bCancel);
virtual HTREEITEM CopyItem(HTREEITEM hItem, HTREEITEM htiNewParent, HTREEITEM htiAfter = TVI_LAST);
virtual HTREEITEM CopyBranch(HTREEITEM htiBranch, HTREEITEM htiNewParent, HTREEITEM htiAfter = TVI_LAST);
virtual BOOL CanDisplayFile(const CFileFind& find);
virtual BOOL CanDisplayFolder(const CFileFind& find);
virtual BOOL CanDisplayDrive(const CString& sDrive);
virtual BOOL CanDisplayNetworkItem(CTreeFileCtrlItemInfo* pItem);
virtual BOOL CanHandleChangeNotifications(const CString& sPath);
static int CompareByFilenameNoCase(CString& element1, CString& element2);
virtual void CreateMonitoringThread(const CString& sPath);
static UINT MonitoringThread(LPVOID pParam);
virtual void KillNotificationThreads();
virtual void KillNotificationThread(const CString& sPath);
virtual BOOL GetSerialNumber(const CString& sDrive, DWORD& dwSerialNumber);
virtual BOOL IsMediaValid(const CString& sDrive);
virtual int NumberOfChildItems(HTREEITEM hItem);
virtual int DeleteChildren(HTREEITEM hItem, BOOL bUpdateChildIndicator);
virtual void OnSelectionChanged(NM_TREEVIEW*, const CString&);
virtual BOOL EnumNetwork(HTREEITEM hParent);
virtual CString GetDriveLabel(const CString& sDrive);
CString GetCorrectedLabel(CTreeFileCtrlItemInfo* pItem);
HTREEITEM FindServersNode(HTREEITEM hFindFrom) const;
BOOL HasPlusButton(HTREEITEM hItem);
void SetHasPlusButton(HTREEITEM hItem, BOOL bHavePlus);
void DoExpand(HTREEITEM hItem);
//Member variables
CImageList m_ilNetwork; //The image list to use for network items
CString m_sRootFolder;
BOOL m_bShowFiles;
HTREEITEM m_hItemDrag;
HTREEITEM m_hItemDrop;
HTREEITEM m_hNetworkRoot;
HTREEITEM m_hMyComputerRoot;
HTREEITEM m_hRootedFolder;
BOOL m_bShowMyComputer;
CImageList* m_pilDrag;
UINT m_nTimerID;
HCURSOR m_DropCopyCursor;
HCURSOR m_NoDropCopyCursor;
HCURSOR m_DropMoveCursor;
HCURSOR m_NoDropMoveCursor;
UINT m_TimerTicks;
BOOL m_bAllowDragDrop;
BOOL m_bAllowRename;
BOOL m_bAllowOpen;
BOOL m_bAllowProperties;
BOOL m_bAllowDelete;
DWORD m_dwDriveHideFlags;
DWORD m_dwFileHideFlags;
CString m_sFileNameMask;
COLORREF m_rgbCompressed;
BOOL m_bShowCompressedUsingDifferentColor;
COLORREF m_rgbEncrypted;
BOOL m_bShowEncryptedUsingDifferentColor;
CArray<LPVOID, LPVOID> m_PrevItems;
CArray<LPVOID, LPVOID> m_NextItems;
int m_nMaxHistory;
BOOL m_bUpdatingHistorySelection;
CArray<CTreeFileCtrlThreadInfo*, CTreeFileCtrlThreadInfo*&> m_ThreadInfo;
CEvent m_TerminateEvent;
BOOL m_bAutoRefresh;
BOOL m_bDisplayNetwork;
BOOL m_bShowSharedUsingDifferentIcon;
HideFileExtension m_FileExtensions;
DWORD m_dwMediaID[26];
IMalloc* m_pMalloc;
IShellFolder* m_pShellFolder;
DWORD m_dwNetworkItemTypes;
BOOL m_bShowDriveLabels;
BOOL m_bShowRootedFolder;
};
//MFC Data exchange routines
void DDX_FileTreeValue(CDataExchange* pDX, CTreeFileCtrl& ctrlFileTree, CString& sItem);
#endif //__FILETREECTRL_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -