热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ListCtrl的使用

通过“打开”命令和“打开文件夹”命令,获取文件信息,并将文件信息写入到ListCtrl中:以下未经说明,listctrl默认

通过“打开”命令和“打开文件夹”命令,获取文件信息,并将文件信息写入到ListCtrl中:

 

以下未经说明,listctrl默认view 风格为report;

 

一、在C123View::OnInitialUpdate()中初始化listctrl:

 

/*设置扩展风格*/
 m_Listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES );//选整行、网格、复选框
/*插入列*/

 m_Listctrl.InsertColumn(0,_T("文件名"),LVCFMT_LEFT);
 m_Listctrl.InsertColumn(1,_T("保存路径"));
 m_Listctrl.InsertColumn(2,_T("格式"));

//_T("")是一个宏,定义于tchar.h下,他的作用是让你的程序支持Unicode编码

/*设置列宽*/

for(int j&#61;0;j<4;j&#43;&#43;)   m_Listctrl.SetColumnWidth(j,120);

 

二、对“打开”命令添加消息响应&#xff1a;

 

void C123View::OnFileAdd()
{
/创建“打开”对话框

CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle&#61;"添加";//对话框标题
fileDlg.m_ofn.lpstrFilter&#61;"pdf File(*.pdf)/0*.pdf/0All Files(*.*)/0*.*/0/0";//文件类型过滤
//fileDlg.DoModal();//显示对话框的DoModal()函数在下面的If语句中调用了&#xff0c;这里注释起来
/


 if(IDOK&#61;&#61;fileDlg.DoModal())//如果模态对话框创建成功&#xff0c;且按下确认时&#xff0c;执行以下代码
 {

//获取文件信息/
  CString strName,strPath,strExt;//文件名、文件路径、文件扩展名
  strName&#61;fileDlg.GetFileName();//获得文件名
  strPath&#61;fileDlg.GetPathName();//获得文件路径
  strExt&#61;fileDlg.GetFileExt();//获得文件扩展名

 

  m_Listctrl.InsertItem(0,strName);//插入文件名&#xff0c;此处不可用SetItemText&#xff0c;为什么呢&#xff1f;
  //m_Listctrl.SetItemText(0,0,strName);
  m_Listctrl.SetItemText(0,1,strPath);//插入路径
  m_Listctrl.SetItemText(0,2,(strExt)); //插入扩展名 
 }

}

三、浏览文件夹、将文件夹中的文件信息写入Listctrl

获取文件夹信息///

 BROWSEINFO bInfo

 ZeroMemory(&bInfo, sizeof(bInfo));

 bInfo.hwndOwner &#61; m_hWnd;//Handle to the owner window for the dialog box&#xff1b;
 bInfo.ulFlags &#61; BIF_RETURNONLYFSDIRS; 

 LPITEMIDLIST lpDlist; //用来保存返回信息的IDList
 lpDlist &#61; SHBrowseForFolder(&bInfo) ; //显示选择对话框,将文件夹信息传递给lpDlist

获取文件夹信息///

if(lpDlist !&#61; NULL) //当用户选择了文件夹&#xff0c;按下确定按钮
 {
  TCHAR chPath[255]; //用来存储路径的字符串
  SHGetPathFromIDList(lpDlist, chPath);//通过项目标识列表获取路径字符串
  strPath &#61; chPath; //将TCHAR类型的字符串转换为CString类型的字符串
  
  CFileFind   finder;
  BOOL bWorking &#61;finder.FindFile(strPath&#43;"//*.txt");//查找文本文件
  while(bWorking)
  { 
   bWorking &#61; finder.FindNextFile();//查找下一个文件
   strName&#61;finder.GetFileName();//获取文件名
   strPath&#61;finder.GetFilePath();//获取路径
   strExt&#61;strName.Right(3);//获取扩展名

   m_Listctrl.InsertItem(0,strName);//插入文件名
   m_Listctrl.SetItemText(0,1,strPath);//插入路径
   m_Listctrl.SetItemText(0,2,(strExt)); //插入扩展名
  }
  finder.Close(); //关闭文件查找
  
 }
 
}

将文件信息写入Listctrl//

转:https://www.cnblogs.com/fww330666557/archive/2011/02/11/3852155.html



推荐阅读
  • 在MFC开发过程中,利用Windows内置的文件对话框可以显著提高文件操作的效率。本文总结了使用文件对话框进行文件选择和处理的经验,详细介绍了相关API的调用方法和参数设置,如`CFileDialog`类的使用、结构体`OPENFILENAME`的配置以及如何获取选中的文件路径。通过这些技巧,开发者可以快速实现文件的打开、保存等功能,提升应用程序的用户体验。 ... [详细]
  • 尽管存在唯一列,仍显示“当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用”的消息。 ... [详细]
  • 本文深入探讨了 C# 中 `SqlCommand` 和 `SqlDataAdapter` 的核心差异及其应用场景。`SqlCommand` 主要用于执行单一的 SQL 命令,并通过 `DataReader` 获取结果,具有较高的执行效率,但灵活性较低。相比之下,`SqlDataAdapter` 则适用于复杂的数据操作,通过 `DataSet` 提供了更多的数据处理功能,如数据填充、更新和批量操作,更适合需要频繁数据交互的场景。 ... [详细]
  • UI组件:ext、JqueryEasyUI、miniui、dhtmlx及自定义页面
    这篇博文主要是分析下当前经常使用到的UI组件,他们的效果和功能一般都可以满足我们平常项目使用,但对于较复杂些的项目建议你要斟酌下再决定是否使用ÿ ... [详细]
  • 本文详细介绍了在 Oracle 数据库中使用 MyBatis 实现增删改查操作的方法。针对查询操作,文章解释了如何通过创建字段映射来处理数据库字段风格与 Java 对象之间的差异,确保查询结果能够正确映射到持久层对象。此外,还探讨了插入、更新和删除操作的具体实现及其最佳实践,帮助开发者高效地管理和操作 Oracle 数据库中的数据。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 本文详细介绍了 jQuery 的入门知识与实战应用,首先讲解了如何引入 jQuery 库及入口函数的使用方法,为初学者提供了清晰的操作指南。此外,还深入探讨了 jQuery 在实际项目中的多种应用场景,包括 DOM 操作、事件处理和 AJAX 请求等,帮助读者全面掌握 jQuery 的核心功能与技巧。 ... [详细]
  • 优化升级版数据采集与赋值方法,专为前文内容设计
    在前一篇文章中,方法的局限性主要体现在需要传递参数,并且参数数量受限。当页面布局与所需参数不匹配时,该方法将无法正常工作。为此,我们推出了优化升级版1.1,旨在解决这些问题并提高灵活性和适用性。 ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
  • Java新手求助:如何优雅地向心仪女生索要QQ联系方式(附代码示例与技巧)
    在端午节后的闲暇时光中,我无意间在技术社区里发现了一篇关于如何巧妙地向心仪女生索取QQ联系方式的文章,顿时感到精神焕发。这篇文章详细介绍了源自《啊哈!算法》的方法,不仅图文并茂,还提供了实用的代码示例和技巧,非常适合 Java 新手学习和参考。 ... [详细]
  • Android ListView 自定义 CheckBox 实现列表项多选功能详解
    本文详细介绍了在Android开发中如何在ListView的每一行添加CheckBox,以实现列表项的多选功能。用户不仅可以通过点击复选框来选择项目,还可以通过点击列表的任意一行来完成选中操作,提升了用户体验和操作便捷性。同时,文章还探讨了相关的事件处理机制和布局优化技巧,帮助开发者更好地实现这一功能。 ... [详细]
  • 本文深入解析了HTML表格与表单元素,特别是图像映射技术的应用。详细介绍了如何利用 `` 标签实现内容的行列对齐,并探讨了 HTML4 中 Flash 的引入及其在网页设计中的应用。通过实例展示了 `` 标签的使用方法,帮助开发者更好地理解和掌握这些核心元素。 ... [详细]
  • 2017-09-07前端日报精选JavaScriptEventLoop机制详解与Vue.js中实践应用Redux基础与实践如何用js获取虚拟键盘高度?( ... [详细]
  • 使用vue.js实现checkbox的全选,和多个的删除欢迎大家来我的博客浏览更多的干货内容www.jaxqin.comtemplate代码:<template> ... [详细]
  • 子元素过滤器在页面设计过程中需要突出某些行时,可以通过基本过滤选择器中的:eq()来实现表单中行的凸显,但不能同时让多个表具有相同的效果。在jQuer ... [详细]
author-avatar
嘲笑讽刺伤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有