分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

系统环境: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,在生成的函数里面添加以下代码

[cpp] view plaincopyprint?
  1. void CTest_ExplorerDlg::OnNMRClickList1(NMHDR *pNMHDR, LRESULT *pResult)
  2. {
  3. LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
  4. // TODO: 在此添加控件通知处理程序代码
  5. CString Filename;
  6. for(int i=0; i<m_wndShellList.GetItemCount(); i++)
  7. {
  8. if( m_wndShellList.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
  9. {
  10. m_wndShellList.GetItemPath(Filename,i);
  11. AfxMessageBox(Filename);
  12. }
  13. }
  14. *pResult = 0;
  15. }

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;}

效果如下:

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

CMFCShellTreeCtrl和CMFCShellListCtrl快速构建资源管理器相关推荐

  1. 一分钟快速重启资源管理器

    Step1:打开电脑的任务管理器. 快捷键:Esc+Shift+Ctrl(也可以使用Ctrl+Alt+.或者Ctrl+Alt+Delete,在弹出的窗口中,选择任务 管理器) Step2:在进程列表中 ...

  2. VS2013/MFC 实现Windows资源管理器的简单方法

    开发平台:Win7+VS2013 总想用MFC来实现Windows系统下的一些小程序,今天突然想实现Windows资源管理器,发现一种非常简单的方法能够实现它,主要用List Control和Tree ...

  3. 修改win7资源管理器默认启动位置

    打开资源管理器属性,在目标(T)后边加上: /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D} 俺滴笨笨原本目标(T)是: %windir%\explorer.ex ...

  4. 计算机和资源管理器的异同,第五课 资源管理的利器——资源管理器的应用.doc...

    备课时间:2015 年 月 日 上课时间:2015 年 月 日 第 节 课 题 第五课 资源管理的利器--资源管理器的应用 教学目标 知识与技能: 1.认识资源管理器: 2.掌握在资源管理器中实现对文 ...

  5. 在 IntelliJ IDEA 中,如何快速将选中文件用资源管理器打开

    在 IntelliJ IDEA 中,如何快速将选中文件用资源管理器打开 教程的运行环境: IntelliJ IDEA 2020.1.2 (Ultimate Edition)   在 IntelliJ ...

  6. 去除Win10资源管理器中快速访问的“最近使用的文件”和“常用文件夹”

    经常访问的文件和文件夹会在资源管理器中的快速访问中显示,如下 去除方法: 打开"文件夹选项",取消勾选以下两个选项: 在"快速访问"中显示最近使用的文件 在&q ...

  7. Windows文件资源管理器“快速访问”的隐藏、关闭及开启(win10)

    目录 "快速访问"在哪里? 隐藏"快速访问" 关闭及开启"快速访问" 关闭"快速访问"之后,遇到的情况 "快速 ...

  8. (win10美化)隐藏win10此电脑(资源管理器)的快速访问、六个额外文件夹、OneDrive等

    Win10此电脑视频.图片等7个文件夹怎么去除? 一丶傻瓜式 先来一键傻瓜式.下面第二部分有一步步操作的,傻瓜式有问题再自己单个尝试: [HKEY_LOCAL_MACHINE\SOFTWARE\Mic ...

  9. 用Flutter + Dart快速构建一款绝美移动App

    作者 | Wojciech Kuroczycki 译者 | 弯月 来源 | CSDN(ID:CSDNnews) 如今,与前端或移动相关的新框架层出不穷.所有从事Web开发的人都应该熟悉各种目不暇接的新 ...

最新文章

  1. 三代测序的基本原理、组装方法和应用场景
  2. View事件分发机制(源码 API27)
  3. 微信APP支付(Java后台生成签名具体步骤)
  4. 为什么要重写 hashcode 和 equals 方法?
  5. A review of 3D/2D registration methods for image-guided interventions(2)
  6. Programming C#.Classes and Objects.只读字段
  7. 黄冈学计算机的学校怎么样,广元市黄冈学校怎么样、好不好
  8. 设计一种网络分播软件
  9. 以太网口差分电平_高速串行总线设计基础(八)揭秘SERDES高速面纱之CML电平标准与预加重技术...
  10. 【基础】基础算法学习笔记(状态空间)
  11. Arduino-1602-LiquidCrystal库
  12. SecureCRT资源下载安装
  13. 嵌入式开发:优化嵌入式软件的7个技巧
  14. java练习题-猜数字游戏
  15. EasyExcel 读取excel表 解决Empty row EasyExcel末尾出现非常多空白行跳过 EasyExcel跳过末尾空白行
  16. 【C/C++服务器开发】socket网络编程函数接口详解
  17. 因特网、万维网、互联网区别
  18. 外罚函数法(二):SUMT算法及其收敛性证明
  19. 拼多多关键词搜索采集商品数据接口,拼多多分类ID搜索采集商品销量接口,拼多多上货接口,拼多多商品列表API接口
  20. 新版正方教务系统Java爬取_正方教务系统成绩爬取(仅个人)+tk可视化

热门文章

  1. [0].Net开发者社区--您好大的官威啊!
  2. MySQL详细安装(windows)
  3. 【苹果cms10 Maccmsv10 站群深度定制版 开发日志】 新增日志模块
  4. C语言 求sin(x)的近似值
  5. 【kotin】统计字符串中的字母数(拓展函数)
  6. 【C语言】编写程序,输出以下图形
  7. 工作效率 工具_我使用的工具加快了我的工作流程,使我的工作效率更高
  8. angular cli_使用Angular CLI连接到服务器的最佳方法
  9. uber-zap_如何构建自己的Uber-for-X应用程序(PART 2)
  10. matlab中函数或变量无法识别怎么办_用MATLAB巧解微分方程实例分析