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

📄 filetree.cpp

📁 所有压缩格式的压缩解压缩。
💻 CPP
字号:
// FileTree.cpp : implementation file
//

#include "stdafx.h"
#include "Compress.h"
#include "FileTree.h"
#include "fileinfo.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFileTree

CFileTreeView::CFileTreeView()
{
}

CFileTreeView::~CFileTreeView()
{
}


BEGIN_MESSAGE_MAP(CFileTreeView, CCJControlBar)
	//{{AFX_MSG_MAP(CFileTree)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CFileTree message handlers

int CFileTreeView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CCJControlBar::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	if (!m_TreeCtrl.Create(WS_VISIBLE|TVS_SHOWSELALWAYS |
			TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS,
			CRect(0,0,0,0),this,IDC_CTRL_FILETREE))
	{
		TRACE0("Unable to create file tree.\n");
		return -1;
	}
	
	SetChild(&m_TreeCtrl);

//	m_TreeCtrl.SetBkColor(RGB(165,203,240));

//	HTREEITEM hItem;
//	hItem=m_TreeCtrl.InsertItem("秦丰林1");
//	hItem=m_TreeCtrl.InsertItem("秦丰林2",hItem);
//	m_TreeCtrl.InsertItem("秦丰林3",hItem);
//	m_TreeCtrl.InsertItem("秦丰林4",hItem);

	DWORD style;
	GetWindowLong(m_TreeCtrl.m_hWnd,GWL_EXSTYLE);
	style|=WS_BORDER;
	SetWindowLong(m_TreeCtrl.m_hWnd,GWL_EXSTYLE,style);

	return 0;
}

void CFileTreeView::AddNode(LPCTSTR lpszFolder,int iIcon,int iSelectedIcon)
{
	CString node,other,txt;
	int i;
	HTREEITEM hParent,hTreeItem;

	hParent=m_TreeCtrl.GetRootItem();
	other=lpszFolder;
	while (!other.IsEmpty())
	{
		hTreeItem=m_TreeCtrl.GetChildItem(hParent);
		i=other.Find('\\');
		node=other.Left(i);
		other.Delete(0,i+1);
		while (hTreeItem)
		{
			txt=m_TreeCtrl.GetItemText(hTreeItem);
			if (txt.CompareNoCase((LPCTSTR)node)==0) break;
			hTreeItem=m_TreeCtrl.GetNextItem(hTreeItem,TVGN_NEXT);
		}
		if (!hTreeItem)
			hParent=m_TreeCtrl.InsertItem((LPCTSTR)node,iIcon,
							iSelectedIcon,hParent);
		else
			hParent=hTreeItem;
	}
}

void CFileTreeView::LoadTree()
{
	CCompressDoc *pDoc=THEAPP->m_pDoc;
	if (pDoc->IsClosed()) return;

	CString folder;int i;
	int iIcon,iSelected;
	FILEINDEXLISTNODE *p=pDoc->GetFileListRoot()->next;

	iIcon=GetFileIcon(pDoc->m_lpszFileName,0,0);
	m_TreeCtrl.InsertItem(pDoc->m_lpszFileName,iIcon,iIcon);

	iIcon=GetFileIcon("",1,0);
	iSelected=GetFileIcon("",1,1);

	while (p)
	{
		folder=p->szFileName;
		if (!p->bIsDirectory)
		{
			i=folder.ReverseFind('\\');
			folder=folder.Left(i+1);
		}
		AddNode((LPCTSTR)folder,iIcon,iSelected);p=p->next;
	}
}

CString CFileTreeView::GetCurFolder()
{
	CString folder;
	HTREEITEM hItem,hParent;
	hItem=m_TreeCtrl.GetSelectedItem();
	while (hParent=m_TreeCtrl.GetParentItem(hItem))
	{
		folder=m_TreeCtrl.GetItemText(hItem)+'\\'+folder;
		hItem=hParent;
	}
	return folder;
}

void CFileTreeView::SetCurFolder(LPCTSTR lpszFolder)
{
	CString node,other;
	int i;
	HTREEITEM hTree;

	hTree=m_TreeCtrl.GetRootItem();
	other=lpszFolder;
	while (!other.IsEmpty())
	{
		i=other.Find('\\');
		node=other.Left(i);
		other.Delete(0,i+1);

		hTree=m_TreeCtrl.GetChildItem(hTree);
		while (m_TreeCtrl.GetItemText(hTree).CompareNoCase(node)!=0)
			hTree=m_TreeCtrl.GetNextItem(hTree,TVGN_NEXT);
	}
	m_TreeCtrl.Select(hTree,TVGN_CARET);
}

⌨️ 快捷键说明

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