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