MFC树型控件浏览文件目录(一)--显示文件树
来源:互联网 发布:数据挖掘常用算法 编辑:程序博客网 时间:2024/06/02 14:41
转载▼
主要实现以下几个功能:
1、显示文件目录树;
2、对于文件,在树型控件中双击进行打开;
3、树节点添加简单右键菜单。
系统:windows8.1
工具:Visual Studio2013
一、树型控件显示文件目录树
1、首先,让我们在VS中建立一个MFC工程,就命名为"MyTree"吧,如图1-1;
点击下一步,进入图1-2,在“应用程序类型”中选择“基于对话框”;
这里直接点击“完成”按钮。(当然,你可以根据自己的需要进行一些其他选项的配置,这里不详述)
图1-1 新建MFC工程
图1-2 选择“基于对话框”选项
2、现在,把生成的对话框中的静态文本框选中删除掉,就是图1-3中的中间那个。
图1-3 去掉中间的文本框
3、然后我们从“工具箱”中选中Tree Control,将它添加到对话框中
设置以下几个属性为true:Has Button、Has Lines、Lines At Root;其他属性为默认值。当然你都可以根据自己的想法来选择,可以实践看看效果如何~
设置属性ID为:IDC_MYTREE 。设置好后如图1-4所示。
图1-4添加树型控件
4、选中我们的树型控件,右键->添加变量,添加一个控件变量,名为“m_MyTree”。如图1-5。完成后,你可以在MyTreeDlg.h头文件中找到它。
图1-5 添加控件变量
5、接下来,让我们在MyTreeDlg.h文件中添加函数ShowFile(就在声明m_MyTree下面),ShowFile主要功能就是递归浏览给定目录下的文件,并且将其显示在树型控件中,声明如下:
......
public:
CTreeCtrl m_MyTree;
void ShowFile(CString str_Dir, HTREEITEM tree_Root);
......
在MyTreeDlg.cpp中添加函数实现:
//函数名称:CMyScriptDlg::BrowseFile
//函数功能:遍历给定目录str_Dir下的文件夹及文件,并插入到树形控件中
//输入参数:str_Dir(起始目录),tree_Root(树形控件的根节点)
//输出参数:无
//返回值 :无
//修改人 修改时间 修改说明
//sephiroth 2014-04-29 创建
void CMyTreeDlg::ShowFile(CString str_Dir, HTREEITEM tree_Root)
{
}
代码并不复杂,可以自行阅读,简单说明一下:
1)这里用至了CFileFind类,具体的说明可以google或MSDN,在通过此类对象获取文件的路径或名称时,要至少调用一次FindNextFileW(),至于为什么,我也不是很清楚,不过打断点来看,只调用FindFile时,是没有文件路径或名称的属性的。
2)HTREEITEM可以理解为代表一个树节点的结构,看代码它实际是指向_TREEITEM的指针,至于里面是什么,我就没有细看了,有兴趣的可以研究一下。
struct _TREEITEM;
typedef struct _TREEITEM *HTREEITEM;
其他的就没什么了,函数很简单,就是采用递归的方式来遍历,并且插入到树中。
剩下我们需要做的就是在对话框初始化的过程中,对树型控件进行初始化。也就是在MyTreeDlg.cpp的OnInitDialog()函数中,return的前面,添加如下代码:记得在MyTreeDlg.h中声明m_TreeRoot哈,用来记录根节点。
//MyTreeDlg.cpp
......
// TODO: 在此添加额外的初始化代码
//初始化树形控件
m_TreeRoot = m_MyTree.InsertItem(L"我的文件");//插入根节点
ShowFile(L"E:\\test", m_TreeRoot);//以E:\\test为根目录进行遍历
return TRUE;
......
至此显示文件目录树就完了(如图1-6),很简单的一个例子~下次我们介绍如何在树中双击打开文件。
图1-6 显示文件树
0 0
- MFC树型控件浏览文件目录(一)--显示文件树
- MFC树型控件浏览文件目录(三)
- MFC树型控件浏览文件目录(二)--双击打开文件
- 让windows explorer文件浏览窗口左侧默认显示目录树
- 树控件显示SQL服务器文件和目录
- MFC浏览文件
- MFC 浏览文件目录,获取路径传到编辑框
- MFC总结(10) ---- MFC中CFileDialog 实现浏览文件和浏览目录功能
- Android 文件浏览控件
- vim目录树或文件浏览插件-NERD tree
- 树控件 加载磁盘文件/某一目录 层次显示所有文件的实现
- TreeView 控件用于在树结构中显示分层数据,例如目录或文件目录等
- MFC/浏览文件或文件夹
- MFC浏览文件夹、文件、路径
- QT浏览目录打开文件
- swt浏览文件 显示文件目录 swt显示图片以及图片缩放处理
- MFC下的系统文件树控件
- MFC 树形控件CTreeCtrl显示文件路径及文件
- 编码问题之URL中特殊字符(ѐ等)
- linux下创建具有root权限的帐号
- delphi xe 之路(30)Delphi XE7 update1进步太大了
- Codeforce 505D - Mr. Kitayuta's Technology 弱联通分量+拓扑排序
- 哀悼日网页彩色变黑白方法-css样式修改
- MFC树型控件浏览文件目录(一)--显示文件树
- 关于Spring集成Quartz的concurrent属性
- 【SSH进阶之路】Spring的IOC逐层深入——Spring的IOC原理[通俗解释一下](三)
- android开发使用adb连接手机进行调试
- opencv 3.0 形态学运算 膨胀与腐蚀
- 深入理解linux系统下proc文件系统内容
- oracle 数据库增量备份
- java 注解
- Python 使用有序list构建简单的set