CMFCShellTreeCtrl和CMFCShellListCtrl快速构建资源管理器
来源:互联网 发布:spps怎么实现数据筛选 编辑:程序博客网 时间:2024/04/24 23:01
原文链接
系统环境:Windows 7
软件环境:Visual Studio 2008 SP1
本次目的:实现CMFCShellTreeCtrl(CBCGPShellTree )和CMFCShellListCtrl(CBCGPShellList )快速构建资源管理器
在VS2008SP1以后的版本都可以快速的建立一个类似资源管理器的工程,或者也可以利用BCG第三库,下面以VS2008SP1版本为例说明构建资源管理器的步骤。
第一步:建立一个“基于对话框”的工程,窗体上放置一个Tree和List控件
第二步:分别为他们添加变量,然后修改声明变量那里为
CMFCShellTreeCtrl m_wbdShellTree;
CMFCShellListCtrl m_wndShellList;
第三步:在对话框初始化函数里面,添加以下代码
m_wbdShellTree.Expand(m_wbdShellTree.GetRootItem(), TVE_EXPAND);
m_wbdShellTree.SetRelatedList(&m_wndShellList);
第四步:设置List控件的属性,在面板里面设置View为Report 一定要设置这个,不然会出错,其余的属性可以设置Always Show为True,Alignment为Top;设置Tree控件的属性,Has Buttons 为True,Has Lines为True,Lines At Root为True
第五步:添加控件初始化,在APP实现文件InitInstance里面添加InitShellManager() 。
效果如下:
发现右键项会弹出上下文相关菜单,也就是跟系统的资源管理器一样弹出系统右键菜单,可以用在对话框初始化函数里面添加以下代码去除关联上下文菜单
m_wndShellList.EnableShellContextMenu(FALSE);
下面是获取当前选中项的路径和名称:
首先:为List控件右键添加事件处理消息NM_RCLICK ,在生成的函数里面添加以下代码
- void CTest_ExplorerDlg::OnNMRClickList1(NMHDR *pNMHDR, LRESULT *pResult)
- {
- LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
- // TODO: 在此添加控件通知处理程序代码
- CString Filename;
- for(int i=0; i<m_wndShellList.GetItemCount(); i++)
- {
- if( m_wndShellList.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
- {
- m_wndShellList.GetItemPath(Filename,i);
- AfxMessageBox(Filename);
- }
- }
- *pResult = 0;
- }
效果如下:
- CMFCShellTreeCtrl和CMFCShellListCtrl快速构建资源管理器
- CMFCShellTreeCtrl和CMFCShellListCtrl快速构建资源管理器
- CMFCShellTreeCtrl和CMFCShellListCtrl快速构建资源管理器
- CMFCShellTreeCtrl和CMFCShellListCtrl快速构建资源管理器
- 用CMfcShellTree和CMFCShellListCtrl实现资源管理器并过滤扩展名
- CMFCShellListCtrl使用方法
- 去除Win10资源管理器中快速访问的“最近使用的文件”和“常用文件夹”
- [MFC] CMFCShellListCtrl初始化失败
- win+E快速打开文件资源管理器问题
- 资源管理器
- 资源管理器
- 资源管理器
- 资源管理器
- C++11:构建多线程环境下的资源管理器
- 用 Apache Derby 和 JRuby on Rails 快速构建原型
- 结合 JSONP 和 jQuery 快速构建强大的 mashup
- 用maven和appfuse快速构建SSH项目
- 合 JSONP 和 jQuery 快速构建强大的 mashup
- 文件保存和读取的问题
- repeater控件介绍、 repeater嵌套的代码实现
- Namenode做block Recovery过程详细剖析
- 十二 Django 1.5.4 外键操作
- Hibernate联合主键详解
- CMFCShellTreeCtrl和CMFCShellListCtrl快速构建资源管理器
- VS2012 下编译boost1.52
- 用一条insert 插入多行数据的方法
- 在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。 -- Shirley对比编程珠玑 in<Shirley>
- 那些年干过的事(一)——php电商网站入侵及防护
- Audience Targeting
- CodeIgniter框架出现错误:Message: Cannot modify header information - headers already sent by...
- Testing
- hdu 2190 悼念512汶川大地震遇难同胞——重建希望小学