MFC编程实践--枚举某路径下的所有文件

枚举类来实现单例模式 前言 这是设计模式的第一篇文章,我们从单例模式开始入手,单例模式是 Java 设计模式中最简单的一种,只需要一个类就能实现单例模式,但是,你可不能小看单例模式,虽然从设计上来说它比较简单,但是在实现当中你会遇到非常多的坑,所以,系好安全带,上车。 单例模式的定义 单例模式就是在程序运行中只实例化一次,创建一个全局唯一对象,有点像 Java 的静态变量,但是单例模式要优于静态变量,静态变量在程... 阅读详情

MFC编程实例(1)――枚举文件夹下的所有文件。

本例子实现的功能是枚举指定路径下的所有文件。程序最后的界面如下:

程序中用到的控件有GroupEditButtonListBoxstatic

我一步一步的来说明吧。(我用的VC++.net

一。、启动VS.Net,点击文件->新建->项目,选择MFC程序,项目名称定位findfilemfc,类型为对话框程序,然后点击完成即可。

选择“资源视图”,依次点开找到Dialog,点开后会发现IDD_FINDFILEMFC_DIALOG,双击之,会显示出对话框模板来,去掉上面的“确定”、“取消”按钮,去掉“在此处添加……”static控件。然后放上两个Group控件,一个static控件、一个Edit控件、一个Button控件、一个ListBox控件。按照第一幅图调整位置。其中Edit控件的ID设为IDC_EDIT_Path,其他控件ID可改可不改,本例子中用不到。

二、右键单击ListBox控件,选择添加变量,变量类别为Control,变量名为m_ListBox,然后点“完成”。因为本例子中控件ButtonListBox的响应事件中都要用到枚举文件夹的函数,所以我们把函数添加到类CfindfilemfcDlg中。方法是选择“类视图”,展开找到CfindfilemfcDlg,右键“添加”->“添加函数”,返回类型为bool,参数类型为LPCTSTR,函数名为setListPath,参数名为szPath。点击“完成”即可。

三、这一步就要添加控件响应函数和函数代码。在findfilemfc.rcCFINDFILEMFCDIALOG)中点击Button控件,选择“控件事件”(在属性图标旁边),然后点击“BN_CLICKED”右边的空白出,用默认的“OnBnClickedButton1”即可。然后点击ListBox控件,添加“LBN_DBLCLK”函数名为默认的“OnLbnDblclklist1”即可。

MFC就是把消息处理函数映射为类的成员函数(这里本例子中不加解释)。

接下来就是要添加代码了。

findfilemfcDlg.cpp中找到void CfindfilemfcDlg::OnBnClickedButton1(){}

在花括号中添加如下代码

CString st1;

     int i=0;

     GetDlgItemText(IDC_EDIT_Path, st1);//取得Edit控件的文字。函数用法参看MSDN

     st1 = st1 + "//*";//在路径末尾添加/*字符,为了显示该路径下的所有文件。也可改为//*.txt,为显示所有txt文件。

     setListPath((LPCTSTR)st1);//调用我们开始定义的函数setListPath,显示所有文件。

void CfindfilemfcDlg::OnLbnDblclkList1(){}

花括号中添加如下代码(其中用到的一些类的行为请参考MSDN

int iIndex = m_List.GetCurSel();//取得选中Item的Index值

     int n = m_List.GetTextLen(iIndex);//取得Index值为iIndex的Item的文本的长度

     CString st1,st2,st3,st4;

     GetDlgItemText(IDC_EDIT_Path,st4);//取得Edit控件的文本

     m_List.GetText(iIndex, st1.GetBuffer(n));//取得Index值为iIndex的Item的文本

     st1.ReleaseBuffer();

     st3 = st4 +"//"+st1;

     st2 = st3 +"//*";

    

     if(setListPath((LPCTSTR)st2))//调用setListPath函数

     SetDlgItemText(IDC_EDIT_Path,(LPCTSTR)st3);//设置Edit控件的文本。

bool CfindfilemfcDlg::setListPath(LPCTSTR szPath){}

花括号中添加如下代码:

int i=0;//统计文件数量

 

     WIN32_FIND_DATA FindData;//查找文件必须的变量

     HANDLE hFile;

     hFile = FindFirstFile(szPath, &FindData);

     if(hFile == INVALID_HANDLE_VALUE)

     {

         return false;

     }

 

     m_List.ResetContent();

     m_List.AddString(szPath);

     do

     {

         m_List.AddString(FindData.cFileName);

         i++;

     }while(FindNextFile(hFile, &FindData));

     FindClose(hFile);

     m_List.AddString("");

     CString cSt;

     cSt.Format("%d file(s) found!",i);

     m_List.AddString((LPCTSTR)cSt);

     return true;

OK,现在我们可以调试了。CTRL+F5,直接运行。

MFC 枚举USB设备 <br />#include <stdio.h><br />#define WIN32_LEAN_AND_MEAN<br />#include <windows.h><br />#include <winioctl.h><br />#include <setupapi.h><br />#pragma comment(lib, "setupapi.lib")<br />#include <initguid.h><br />#define MAX_DEVICE 16<br /><br />#include <s 阅读详情

相关推荐

MFC USB调试助手开发实战:从设备枚举到数据交互

本文详细介绍了使用MFC开发USB调试助手的实战过程,涵盖从设备枚举到数据交互的全流程。通过调用Windows SetupAPI和WinUSB接口,实现了对USB设备的完整枚举、描述符解析以及控制、批量、中断等多种传输类型的数据收发。该工具旨在帮助嵌入式开发者、硬件工程师及爱好者高效调试自定义USB设备,深入理解USB协议。

tensor9flow的博客 433

mfc 枚举进程 mfc 枚举进程

mfc 枚举进程 mfc 枚举进程 mfc 枚举进程 mfc 枚举进程 mfc 枚举进程

MFC Windows 程序设计[304]之文件夹的枚举(附源码)

MFC是微软公司提供的一个类库(class libraries),用以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。有很多初学MFC的小伙伴们都觉得MFC比较难学,看书吧,看了就忘了,网上的一些教程又是写的含糊不清,故而学习起来很吃力...... 故此,本专栏亲自研究,实践,由易到难,层层深入,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学MFC的小伙伴,避免走弯路,费时费力。......

hnjzfwy的博客 417

MFC 枚举的使用样例 enumeration --enum

倒斗拉比 755

MFC】tab控件 仿任务管理器 枚举窗口和进程

创建一个基于对话框的MFC项目,给主对话框添加一个tab控件(设置关联变量 类型:CTabCtrl 名称:m_tab),添加两个子对话框(IDC_PAGE1和IDC_PAGE2),给子对话框添加一个list control控件(设置关联变量 类型:CListCtrl 名称:m_list),并将子对话框的边框属性设置为None,窗口样式设为child在资源视图界面右击对话框给IDC_PAGE1和IDC_PAGE2添加对话框类,类名分别为CPage1,CPage2。

m0_72895175的博客 1367

MFC编程实例(1)――枚举文件夹下的所有文件

MFC编程实例(1)――枚举文件夹下的所有文件。 本例子实现的功能是枚举指定路径下的所有文件。程序最后的界面如下: 程序中用到的控件有Group、Edit、Button、ListBox、static。 我一步一步的来说

u012764241的专栏 1413

基于MFC实现文件名查找路径的完整项目实战

回顾整个实现过程,我们从CFileFind的基本用法出发,逐步构建出一个具备工业级质量的文件查找系统。这其中涉及的知识点看似琐碎,但每一个都是真实项目中踩过坑后的经验结晶。

weixin_31641077的博客 614

MFC 树形控件CTreeCtrl显示文件路径文件

在上篇文章中简单讲述了"MFC单文档分割窗口显示图片",但是我想实现的是左边显示图片的路径,右边显示图片的情况,所以这里需要讲述如何使用控件List Control和Tree Control. CListCtrl(列表控件):可以用大图标、小图标、列表、报表四种不同方式显示一组信息. CTreeCtrl(树形控件):用树结构显示一组信息,并能反映这些信息的层次关系.首先声明:该文章主要...

杨秀璋的专栏 2万+

使用MFC在Windows中删除文件夹及其所有文件

htmltable {th, td {th {pre {简介:在Windows环境下,通过MFC库简化开发过程,可以实现删除文件夹下所有文件的功能。本指南详细介绍了利用MFC中的CFile和CFileFind类,以及Windows API来完成文件遍历、删除和错误处理的步骤。同时,还包括对权限和用户交互的处理,确保操作的安全性和用户友好性。

weixin_42437253的博客 1084

MFC中ShellManager的使用

也许大家看到这个题目,未曾进行windows shell编程的同学呢,会不明白是什么意思,这里简单的介绍一下,windows shell就是可以使编写的程序与系统关联(如快捷方式,托盘图标等),管理系统资源(如文件文件夹等)的编程方式。在说的简单一点,就是通过编程控制windows系统的各种行为以及外观,对windows系统进行各种操作和设置。在windows中的所有资源,主要是文件文件夹,在

xinzhiyounizhiyouni的专栏 5582

MFC-通过psapi.dll中的函数枚举进程

这次通过一个实用的小例子讲解一下psapi.dll(头文件是Psapi.h)中几个函数的用法. 效果如图: 这个例子需要用到的知识有: 静态文本http://blog.csdn.net/qq_18297675/article/details/50978562 ListControlhttp://blog.csdn.net/qq_18297675/article/details/50983

_ACME_的博客 1831

实现MFC文件夹递归拷贝到指定路径的源码分析

CFileFindCFile类是MFC中的一个基础类,提供了对文件进行读写操作的接口。它能够处理文本和二进制文件,支持随机访问,允许文件指针移动到文件的任意位置进行读写操作。CFile类还具有异常处理机制,当发生错误时能够抛出异常,使得开发者能够在文件操作过程中进行适当的错误处理和资源清理。在一个典型的文件操作项目中,源码通常被划分为几个主要模块,每个模块都有其特定的功能和职责。以下是模块功能的一般概述:文件操作模块:处理文件的基本操作,如打开、关闭、读取、写入等。目录遍历模块。

weixin_32312889的博客 878

MFC教程-3

 CObject类 CObject 是大多数MFC类的根类或基类。CObject类有很多有用的特性:对运行时类信息的支持,对动态创建的支持,对串行化的支持,对象诊断输出,等等。 MFC从CObject派生出许多类,具备其中的一个或者多个特性。程序员也可以从CObject类派生出自己的类,利用CObject类的这些特性。本章将讨论MFC如何设计CObject类的这些特性。首先,考察C

JidanIt的专栏 1872

MFC枚举USB设备

本人初学VC++,尝试使用MFC来制作USB枚举,与大家分享经验。 本文利用根据微软的usbview源码,在Visual Stdio2015利用MFC写了USB枚举。首先利用SetupDiGetClassDevs()枚举GUID类型,这里的GUID选用的是GUID_DEVINTERFACE_USB_DEVICE,在usbiodef.h头文件中还有很多GUID。 添加头文件。 #include <hidsdi.h> #include <usbiodef.h> #include

liyuchao11的博客 2398

MFC Windows 程序设计[257]之MFC枚举选择元素例程(附源码)

MFC是微软公司提供的一个类库(class libraries),用以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。有很多初学MFC的小伙伴们都觉得MFC比较难学,看书吧,看了就忘了,网上的一些教程又是写的含糊不清,故而学习起来很吃力...... 故此,本专栏亲自研究,实践,由易到难,层层深入,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学MFC的小伙伴,避免走弯路,费时费力。......

hnjzfwy的博客 307

MFC应用——枚举正在运行的进程

使用系统快照枚举进程 #include<Window.h> #include<TlHelp32.h> #include<stdio.h> int main() { PROCESSENTRY32 processEntry = { 0 }; HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPR...

qq_42832272的博客 563

mfc遍历指定文件夹下的所有文件并排序

mfc遍历指定文件夹下的所有文件并排序 MFC下遍历文件夹下的所有文件,借助于CString类和CFileFind类的便捷,代码如下: 只有一层文件结构 很多时候我们要处理的文件只在一个特定的文件夹下,且该路径下除了待处理的文件之外没有其他文件夹,这时情况比较简单,不需要迭代处理,直接按照下面的操作即可: CString filepath = _T("/path/to/fo...

德固的博客 1889

Windows API中枚举所有文件文件

文章目录前言一、WIN32_FIND_DATA 是什么?二、使用步骤1.WIN32_FIND_DATA 和 HANDLE 声明2.FindFirstFile和FindNexxtFile以及FindClose的使用 前言 Windows API中枚举所有文件文件夹 涉及函数 findFirstFile findnextfile findclose WIN32_FIND_DATA 结构体 一、WIN32_FIND_DATA 是什么? WIN32_FIND_DATA 这个结构描述了FindFirst

963
上一篇: MFC学习小结
下一篇: CTreeCtrl类学习笔记
FandLR
博客等级 码龄22年 1粉丝 26原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值