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

📄 foldertree.cpp

📁 功能: 在一个树控件窗口内添加一个“工程”或“文件夹”目录
💻 CPP
字号:
// FolderTree.cpp : implementation file
//

#include "stdafx.h"
#include "MyFolder.h"
#include "FolderTree.h"

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

/////////////////////////////////////////////////////////////////////////////
// CFolderTree

CFolderTree::CFolderTree()
{
}

CFolderTree::~CFolderTree()
{
}


BEGIN_MESSAGE_MAP(CFolderTree, CTreeCtrl)
	//{{AFX_MSG_MAP(CFolderTree)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFolderTree message handlers
void CFolderTree::FillItem(CFolder* pFolder, HTREEITEM hParentItem, BOOL bExpand/*=FALSE*/)
{
	if(!pFolder)//填充结点函数
		return;//pFolder为空则返回

	CString strFolderName;//定义文件夹名称变量
	TV_INSERTSTRUCT TreeCtrlItem;//定义TreeCtrlItem

	if (hParentItem == NULL)//如果父亲结点为空
	{
		TreeCtrlItem.hParent = TVI_ROOT;//定义为根结点
	}
	else
	{
		TreeCtrlItem.hParent = hParentItem;//否则定义为父亲结点
	}

	TreeCtrlItem.hInsertAfter = TVI_LAST;//最后插入结点
	TreeCtrlItem.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_PARAM | TVIF_SELECTEDIMAGE;
//激活上述iImage,iSelectedImage,lParam属性
	strFolderName = pFolder->GetFolderName();//获取文件夹名(GetFolderName为已定义函数)
	TreeCtrlItem.item.pszText = strFolderName.GetBuffer(strFolderName.GetLength());//得到文件名
	strFolderName.ReleaseBuffer();//释放GetBuffer

	if(hParentItem == TVI_ROOT)//如果父亲结点为根结点
	{
		TreeCtrlItem.item.iImage = 3;//选取一个新建文件图象(3为“工程”图象)
		TreeCtrlItem.item.iSelectedImage = 3;//选中该节点时的图象

	}
	else//如果父亲结点不为根结点
	{
		TreeCtrlItem.item.iImage = 0;//选取一个新建文件图象(0为“文件夹”图象)
		TreeCtrlItem.item.iSelectedImage = 1;//选中该节点时的图象(1为“打开的文件夹”图象)
	}

	TreeCtrlItem.item.lParam = (LPARAM)pFolder;

	hParentItem = InsertItem(&TreeCtrlItem);//插入结点

}

⌨️ 快捷键说明

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