VC++文件浏览和树状文件夹浏览

C++打开文件夹对话框之BROWSEINFO 该对话框具有多种新功能,包括:对话框中的拖放功能、重新排序、快捷菜单、新文件夹、删除和其他快捷菜单命令。要将BrowseCallbackProc附加到对话框,请在SHBrowseForFolder调用中使用的BROWSEINFO结构的lpfn成员中指定它的地址。一个应用程序定义的值,在调用SHBrowseForFolder时使用的BROWSEINFO结构的lParam成员中指定。对于该标志,返回0以取消对话框,或返回非0以保持对话框的显示。指向缓冲区的指针,用于接收用户选择的文件夹的显示名称。 阅读详情

1、“打开”和“另存为”对话框

CString CTestDlg::selectFileName(BOOL isOpen, CString defaultFileName, CString &fileName)

{

//isOpen = TRUE---->open打开

//isOpen = FALSE--->save另存为

CFileDialog hFileDlg(isOpen, NULL ,

defaultFileName,

OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST,

TEXT("注册表文件 (*.reg)|*.reg|所有文件(*.*)|*.*|"),

NULL);

 

CString currentDir; 

GetCurrentDirectory(MAX_PATH,currentDir.GetBuffer(MAX_PATH)); 

currentDir.ReleaseBuffer();

 

hFileDlg.m_ofn.lpstrInitialDir = currentDir;

//hFileDlg.m_ofn.lpstrTitle = "保存";

if(hFileDlg.DoModal() == IDOK)

{

CString str;

str = hFileDlg.GetPathName();

fileName = hFileDlg.GetFileName();

return str;

}

return NULL;

}

 

2、文件夹浏览

CString CTestDlg::selectPath()
{
//explore
//ShellExecute(NULL, "explore", "D://", NULL, NULL, SW_SHOWDEFAULT);
BROWSEINFO bi;
char buffer[MAX_PATH];
ZeroMemory(buffer, MAX_PATH);
bi.hwndOwner = GetSafeHwnd();
bi.pidlRoot = NULL;
bi.pszDisplayName = buffer;
bi.lpszTitle = "请选择软件的安装路径";
bi.ulFlags = BIF_EDITBOX;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
LPITEMIDLIST pList = NULL;
if ((pList = SHBrowseForFolder(&bi)) != NULL) {
char path[MAX_PATH];
ZeroMemory(path, MAX_PATH);
SHGetPathFromIDList(pList, path);
TRACE("select path is :%s/n", path);
CString str;
str.Format("%s", path);
((CEdit*)GetDlgItem(IDC_EDIT_INSTALLPATH))->SetWindowText(str);
return str;
}
}
VC++ 2010安装配置全指南:解决兼容性与遗留项目维护难题 在软件开发领域,向后兼容性是维护长期项目稳定性的关键挑战。其核心原理在于不同版本的编译器、运行时库和开发工具链之间存在接口与行为差异,直接升级可能导致编译失败或运行时错误。对于C++这类系统级编程语言,技术价值体现在能够确保工业控制、金融交易等关键领域遗留系统的持续运行,避免因环境变迁导致业务中断。应用场景广泛覆盖了需要维护基于特定历史版本构建的代码库,例如依赖老版本第三方库或使用已被新标准弃用语法的项目。本文聚焦于Visual C++ 2010这一经典开发环境的完整搭建与问题排查,详细拆解了从获取安装介质 阅读详情

相关推荐

用VC++展示硬盘目录结构的编程技巧

在计算机科学中,树形结构是一种常见的数据结构,它通过节点表示数据,通过边表示节点之间的关系,模仿了自然界中的树状分支结构。硬盘目录列表采用树形结构,可以让用户以直观的“父子”关系来理解文件夹和文件之间的层级。

weixin_42627459的博客 1000

【C/C++】文件夹的打开、遍历、删除、创建、关闭操作汇总

转自:http://sodino.com/2015/03/09/c-directory-io/ 打开文件夹遍历文件夹下的内容 读取文件夹下的子文件(夹) 文件夹位置指针的操作 遍历、过滤文件夹下的子文件(夹) 文件夹关闭删除文件夹创建文件夹 需要用到的头文件为: #include #include 打开文件夹 DIR *opend

feixuedudiao的专栏 1万+

VC++实现打开一个文本文件并显示出来

对新手很有帮助的吧!大大家会喜欢的,5555,加分啊 !

vc++浏览文件夹

#include #include #include #include using namespace::std; int main() {     string              strInitFolder = _T("");     TCHAR               szPath[MAX_PATH] = _T("");     LPMALLOC

富亮的地盘 719

VC++MFC 资源管理器(本地磁盘目录浏览)带资料

VC++MFC 资源管理器(本地磁盘目录浏览)带参考资料,最对正确,不骗人

vc++6.0文件浏览

vc++6.0文件浏览

About Browsing the directory(关于浏览文件对话框的实践)

在VC++编程中,有很多地方要用到文件夹浏览对话框,在version5.0版本(微软控件版本,一般在Windows2000之前)之前若想在文件夹浏览对话框上加一个新建文件夹按钮,需要自己编程来实现,现在在version5.0版本后,只需设置一个参数就可以了,而且有上下文菜单。如下图所示:(点此下载整个示例工程,本工程略加改动即可使用于自己的程序中。本工程亦可作为初学者的教程,一般教材很少讲文件夹浏

infoncust的专栏 1058

简单的文件浏览器(VC源码)

简单的游览器,里面的一个小BUG,就是如果显示的文件过多的话,图标会不能显示,希望有高手指导一下.

vc++6.0的工作空间/工作区是什么?工程 文件 工作区什么区别?

工作空间应该是一个“目录”,它包含了在它里面的工程、文件之类的信息。形象一点的,把工作空间比作一个房子,工作空间里面的工程(Project)就是这个房子的房间,所以一个工作空间是可以包含好几个工程的。房间里面又有床、椅子、被子、书桌…之类的东西,这些东西好比是工程的文件(.cpp/.h/.rc…),而哪张床、椅子…(文件)具体属于哪个房间(工程)都有标记,这样才不会乱,而这些标记都记录在工作空间(...

deniece1的博客 4872

VC++在你的程序中显示资源管理器,浏览文件夹对话框.zip

VC++在你的程序中显示资源管理器,visual c++浏览文件夹对话框.zip

文件上传漏洞攻击与防范方法

文件上传漏洞攻击与防范方法 文件上传漏洞简介: 文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。 文件上传漏洞危害: 上传漏洞与SQL注入或 XSS相比 , 其风险更大 , 如果 Web应用程序存在上传漏洞 , 攻击者上传...

m0_38103658的博客 4万+

用VC++修改注册表----让我们踏出第一步(适合初学者)

开场白       你是不是非常期待通过自己的双手,写出一个有模有样的"系统修改(维护)工具软件"?我想答案应该是肯定的!而你也许也知道,这些工具所包含的很多功能,其实都是仰赖Windows注册表;通过修改注册表可以实现对系统相关参数的修改.也许这样讲来,你还是觉得不着边际,好,不要急,让我以这篇文章,告诉你一些你必须知道的事情,在你能够真正动手修改注册表之前.我假定这篇文章的读者是初学者,我尽量

chenhua1986的专栏 499

智能网联汽车电子电气架构(下)

从资产的表现形式, 可以分为数据、 软件、 硬件、 服务等, 而从需要保护的业务过程和活动、 所关注信息的角度, 资产类型可包括基于 ECU 的控制功能、 与特定车辆相关的信息、 车辆状态信息、 用户信息、 配置信息、 特定的软件、 内容等。面向新一代 EEA 的安全需求, 基于芯片提供的 OTP, 或SHE\HSM 的安全存储能力, 实现系统关键数据(身份、 密钥等关键信息) 的安全存储, 保证系统的关键数据不被盗取、 破坏、 改写。结合攻击者的动机与识别出的系统用例, 分析对汽车电子系统可能的攻击。

m0_58838529的博客 1470

VC++实现目录树生成工具:Win32 API递归遍历与项目结构可视化

文件系统操作是编程中的基础概念,涉及对文件和目录的创建、读取、修改与遍历。其核心原理在于操作系统提供的API接口,如Windows平台的Win32 API,通过递归或迭代算法访问存储介质上的数据组织结构。掌握文件遍历技术具有重要价值,它能实现项目结构的自动化分析、构建依赖检查以及文档生成,提升软件工程效率。在C++开发中,尤其是在处理遗留项目或需要精细控制文件操作的场景下,Win32 API因其底层控制力、良好兼容性及无额外依赖的特点成为经典选择。通过实现一个目录树生成工具,开发者可以深入理解递归算法、字符

weixin_33754065的博客 813

浅谈Mike 3D中制作垂向水温分层边界

本次以水温分层为例进行讲解,可应用于水库的水温分层模拟中

zhuzhujiayoua的博客 1407

TP-LINK电信定制摄像头刷机教程:解锁官方功能与固件升级

固件是嵌入式设备的操作系统,控制着硬件的基础功能。其工作原理是通过更新或替换存储在设备非易失性存储器中的程序代码,从而改变设备的行为和功能。这项技术的核心价值在于赋予用户对设备的完全控制权,能够解除厂商或运营商的软件限制,实现功能自定义、性能优化和安全更新。在智能家居、网络设备和物联网领域,固件升级与刷机是常见的工程实践,用于修复漏洞、增加新特性或适配不同平台。本文聚焦于利用TFTP恢复模式这一通用网络设备维护机制,针对TP-LINK电信定制版摄像头,提供一套完整的刷机方案,将设备刷入官方通用版固件,以解除

weixin_34205826的博客 485

入门知识之——VC++ 静态链接库和动态链接库的配置 (lib、dll)

开发的时候,经常会遇到要加载开源库或者其他人写的静态链接库,动态链接库。很多新手对于在vc++(2003以上版本,本人不熟悉6.0,所以本篇讲的都是在2003以上版本中的配置方法)怎样配置库文件不太清楚,其实这件事很简单,只是在网上似乎搜索不到更贴切的答案,这篇文章给大家做个入门介绍。 在C++里面,如果我们对于一个功能模块,进行包装,有两种最常见的方式,一种是静态链接库,一种是动态链接库。在v

hy_jones的专栏 2190

【教培管家】小程序实战(五):体验课预约——从流量到转化的闭环

本节我们通过变量状态管理和数据联动,实现了孩子选择和日期选定。下一篇我们继续讲解预约页面,根据选择的日期来筛选排课,供用户进行预约。

低代码布道师的博客 1562

C++修改注册表信息

开场白       你是不是非常期待通过自己的双手,写出一个有模有样的"系统修改(维护)工具软件"?我想答案应该是肯定的!而你也许也知道,这些工具所包含的很多功能,其实都是仰赖Windows注册表;通过修改注册表可以实现对系统相关参数的修改.也许这样讲来,你还是觉得不着边际,好,不要急,让我以这篇文章,告诉你一些你必须知道的事情,在你能够真正动手修改注册表之前.我假定这篇文章的读者是初学者,我

湛蓝的天空下有一道美丽的影子 5859

RK3588平台MIPI DSI屏幕调试记录

本文是基于RK3588平台,MIPI屏调试总结。调试过程中遇到的问题:一开始很久没亮,测量了电源电压和波形都正常。后来换了一组板子和屏幕做对比。最后是因为屏幕的座子没焊接好,二是接MIPI屏幕的排线太长会影响数据传输。换了一根短的线之后屏幕亮起。vp2vp3。

bingdund的博客 1389

【51单片机实物】基于51单片机设计的简易直流电机调测速系统(可用在普中开发板)

功能任务描述:将设置的转速与当前测量的转速比较,得出差值用于控制DAC0832的输出电压,从而控制直流电机的转速,使转速逐渐达到设置转速。在LED上显示设置转速(左2位LED)和当前转速(右2位LED),转速显示采用十进制。控制过程中,当前转速显示不断变化。*直流电机转速范围0-96r/s,误差±1r/s

嵌入式阿齐Archie 1万+

[毕业生的商业软件开发之路]解决方案资源管理器

解决方案资源管理器     VS.NET集成开发环境右上方为解决方案资源管理器。其用户界面如下所示。       解决方案资源管理器包含一个工具条和一个解决方案资源树状列表。[袁永福版权所有] 解决方案资源树状列表     解决方案资源树状列表的方式列出了C#工程中包含的所有的成员项目。这个树状列表中列出的常见的成员项目类型有以下几种。 解决方案     这个树状列表的只有一个“...

weixin_34319111的博客 92

全功能爬虫框架:Botasaurus 的详细使用(现代化、反检测、高并发的智能爬虫框架)

Botasaurus是一个基于 Python 的全栈式智能数据采集框架。它深度融合了以下关键技术: 无头浏览器自动化(Headless Browser Automation):基于 Playwright 或 Puppeteer,支持 Chromium、Firefox、WebKit; 高级反检测引擎(Anti-Detection Engine):自动绕过 WebDriver、Canvas、AudioContext 等 50+ 种指纹检测; 声明式任务模型(Declarative Task Model):用装

数据知道的博客 4369

不用Qt也能行:Visual Studio 2022自带工具打包C++项目exe的保姆级教程

本文提供了一份详细的Visual Studio 2022自带工具打包C++项目exe的保姆级教程。通过安装和使用内置的Installer Projects扩展,开发者无需依赖Qt等第三方工具,即可自动化处理VC++运行时库等依赖,生成专业的安装程序(.msi或.exe),实现C++应用程序的独立分发。

rgv234567的博客 269

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: Visual Studio 2008小助手安装
下一篇: Bash Self-Extracting Script
sanlinux
博客等级 码龄17年 92粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值