VC++打开、保存文件对话框和浏览文件夹对话框

[C++]利用IFileDialog打开(保存)文件对话框并获取文件路径 bool OpenWindowsDlg(bool isMultiSelect,bool IsOpen, int nType) { CoInitialize(nullptr); if (!isMultiSelect) { IFileDialog *pfd = NULL; HRESULT hr = NULL; if(IsOpen) hr = CoCreateInstance(C... 阅读详情

一。打开文件夹:

1。CFileDialog实现

CFileDialog hFileDlg(true,NULL ,
   NULL,
   OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST,
   TEXT("驱动文件 (*.sys)|*.sys|所有文件(*.*)|*.*|"),
   NULL);
if(hFileDlg.DoModal() == IDOK)
{
   m_path = hFileDlg.GetPathName();
   UpdateData(FALSE);
}

 

2。API实现
OPENFILENAMEA ofn;      
char szFile[260];      

ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = NULL;
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = '/0';
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "音频文件/0*.wma/0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = 0;


if (GetOpenFileNameA(&ofn)==FALSE)
   return S_FALSE;

CString c_save_path=ofn.lpstrFile;

二、保存文件

同上,只不过将“ CFileDialog hFileDlg(true,NULL ”改为“ CFileDialog hFileDlg(false,NULL ”,或者将GetOpenFileNameA改为GetSaveFileNameA,即可。

三、浏览文件夹对话框

//回调函数
int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
    if(uMsg==BFFM_SELCHANGED||uMsg==BFFM_INITIALIZED)
    {
        if(uMsg==BFFM_INITIALIZED)
        {
            ::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,
                LPARAM(lpData));
        }
    }
    return 0;
}


TCHAR chPath[255]; //用来存储路径的字符串
CString strPath = "";
BROWSEINFO bInfo;
GetModuleFileName(NULL,chPath,MAX_PATH);
strPath=chPath;
ZeroMemory(&bInfo, sizeof(bInfo));
bInfo.hwndOwner = m_hWnd;
bInfo.lpszTitle = _T("请选择路径: ");    
bInfo.ulFlags   = BIF_RETURNONLYFSDIRS|BIF_EDITBOX;
bInfo.lpfn      = BrowseCallbackProc;
bInfo.lParam    = (LPARAM)strPath.GetBuffer(strPath.GetLength());

LPITEMIDLIST lpDlist; //用来保存返回信息的IDList
lpDlist = SHBrowseForFolder(&bInfo) ; //显示选择对话框
if(lpDlist != NULL) //用户按了确定按钮
{
   SHGetPathFromIDList(lpDlist, chPath);//把项目标识列表转化成字符串
   strPath = chPath; //将TCHAR类型的字符串转换为CString类型的字符串
   m_save_path=strPath;
   UpdateData(FALSE);
}

c++打开文件夹对话框GetOpenFileName 获取打开文件的filename(String类型)、使用Qt中QFileDialog打开、MFC中CFileDialog打开文件 使用GetOpenFileName 获取打开文件 String filemname; OPENFILENAME ofn = { 0 }; TCHAR strFileName[MAX_PATH] = { 0 }; //用于接收文件名 ofn.lStructSize = sizeof(OPENFILENAME); //结构体大小 ofn.hwndOwner = NULL; //拥有着窗口句柄... 阅读详情

相关推荐

C++程序操作打开文件对话框(单选/多选)、保存文件对话框、浏览文件夹对话框(附完整源码)

本文讲述C++程序如何打开打开文件对话框(单选/多选)、保存文件对话框、浏览文件夹对话框(附完整源码)。

dvlinker的技术专栏 829

C++ MFC / VS2013 之十五(对话框:文件对话框)

文件对话框     上一讲介绍的是消息对话框,本节讲解文件对话框。文件对话框也是很常用的一类对话框。 一.文件对话框的分类      文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框。例如,很多编辑软件像记事本等都有“打开”选项,选择“打开”后会弹出一个对话框,让我们选择要打开文件的路径,这个对话框就是打开文件对话框;除了“打开”

zjl-wgf 1393

vc++ 弹出打开、保存对话框功能(COM组件使用详解)

很多应用都会有选择打开文件、或者选择保存文件的功能,这种情况下一般都是弹出一个对话框让用户自己选择。这并不需要自己去写一个,因为windows系统已经自带了好看、易用的相关组件,可以直接在代码中使用。

余识- 963

c++ MFC弹窗以及保存文件窗口

弹窗: 比如我们要弹出这个窗口: 我们要做的是,在MFC中新建该窗口,并且添加一个窗口类CSavepictureDlg。 比如我们设置点击某个按钮弹出该框,那我们就再该按钮的消息响应函数里面写上两句就够了: CSavepictureDlg dlg; //为该窗口类实例化一个窗口对象 dlg.DoModal(); //然后调用该对象调用该类的方法即可。 接下来点击上图上的select按钮,...

Alan_Program的博客 2724

VC++一文带你搞懂如何操作文件对话框(附源码)

本文详细讲述一下C++在操作打开文件对话框、保存文件对话框、浏览文件夹对话框时的相关细节,给大家借鉴和参考。

dvlinker的技术专栏 1万+

C++实现打开文件和打开所在文件夹的功能(附源码)

在使用IM软件将文件接收完成,或者使用下载软件将文件下载完成时,都会有打开文件和打开文件坐在文件夹的入口,如下: 打开文件是直接将文件打开,打开所在文件夹则是打开文件所在的目录并选中该文件。下面我们就来看看实现打开文件及打开所在文件夹这两个功能的实现细节。 对于打开文件,我们只需要调用ShellExecute,传入“open”参数和要打开的文件的完整路径即可,执行这句代码后,系统会启动适当的程序去打开这个文件。此处有个细节需要考虑一下,要判断ShellExecute AP...

dvlinker的技术专栏 1万+

VC++:打开、保存文件对话框和浏览文件夹对话框

http://xinxing124.blog.163.com/blog/static/3017019520103911406972/ VC++:打开、保存文件对话框和浏览文件夹对话框_一切随缘_新浪博客 一。打开文件夹: 1。CFileDialog实现 CFileDialog hFileDlg(true,NULL ,NULL,OFN_FILEMUSTEXIST |...

weixin_30729609的博客 90

VC++ 文件路径选择与文件夹打开两种实现方法及示例

本文还有配套的精品资源,点击获取 简介:在VC++编程中,文件路径的选择和特定文件夹的打开是常见的用户交互需求。本教程详细介绍了两种不同的方式实现文件路径选择对话框,包括使用 CFileDialog 类和 OPENFILENAME 结构结合 GetOpenFileName 函数。此外,还讲解了如何使用 IShellItem ...

weixin_42584586的博客 2275

VC++ 打开文件夹,保存文件等对话框的调用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34010949的博客 223

VC++文件夹浏览对话框实践指南

BROWSEINFO通过调整ulFlags中的标志位,可以自定义对话框的行为和样式。一些常见的标志位包括:: 使用新的对话框样式,提供更现代的外观。: 在对话框中包含一个编辑框,允许用户输入文件夹名。: 不显示“新建文件夹”按钮。BIF_LIMITTOTRIM感冒: 限制用户只能浏览已知的文件系统。: 仅返回文件系统目录,忽略其他文件夹。例如,如果要实现一个仅显示文件系统目录的对话框,可以设置ulFlags为和。

weixin_42510243的博客 442

在VC++中实现文件对话框的自定义预览功能

组件对象模型(Component Object Model,COM)是一种由微软提出的软件组件架构。它允许在不同的编程语言和软件平台上实现组件间通信。COM的核心是一组接口,这些接口定义了组件间交互的标准方式。在COM中,一个接口是一组函数指针的集合,用于提供对象的某种功能。IUnknown是所有COM接口的基接口,它提供三个基本功能:引用计数管理、接口查询以及动态类型检查。它是确保COM组件能够在不同的环境和语言中被正确创建、使用和销毁的关键机制。

weixin_35752233的博客 513

vc选取及保存文件对话框\浏览文件夹对话框

vc选取及保存文件对话框\浏览文件夹对话框 首先在Dialog上添加控件如下图: 在OnSelectFile()中添加如下代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15     CFileDialog  m_ReadDlg(TRUE);     m_ReadDlg.m_

zhangweijiqn的专栏 1804

SaveFileDialog(保存文件对话框)

VS2008下的一个小程序。类似于word中点击保存,然后打开一个保存文件对话框。当存在相同文件时,提示是否覆盖。

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

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

走南闯北的专栏 1077

智能制造 | 如何快速自动生成站位表及自动与BOM校验?

一、站位表(SMT行业中)是SMT上料防错的基础信息,用于对需上料物料与产线、贴片机位置、飞达规格型号、用量,建立基础资料。 SMT站位表是否正确? 首先需要人工确认站位表与SMT程序的是否符合,上料员依照站位表安装好后,确认人员需有第三方确认者 (品管确定)核对。 站位表内容包括什么? 站位表内容为:SMT站位号相对应的物料编码,元件位号,飞达大小/间距,数量等等,根据不同公司的要求而定义。 就目前来说,基本每一款贴片机都可以输出站位清单 但对于企业来说,直接输出的站位清单一般不直接使用,需要进行手动处理

vayoinfo111的博客 4944

UE 顶点动画工具 (VAT)

导入模型需要勾选全精度UV。

iesoxj的博客 1643

Win32 API 选择文件和文件夹

1.打开文件GetOpenFileName OPENFILENAME ofn; WCHAR szFile[100]; ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof (ofn); ofn.hwndOwner = NULL; ofn.lpstrFile = szFile; ofn.lpstrFile[0] = '\

萧狼技术博客 6934

2026深度破解:OpenClaw开源AI框架架构与实战全景解析

2026年初,一款名为OpenClaw的开源AI Agent框架以惊人的速度席卷全球开发者社区,短短数周GitHub星标突破20万,成为史上增长最快的开源项目。本文从架构设计、核心原理、代码实现和工程实战四个维度,深度剖析OpenClaw的技术内核,帮助开发者从理解到实践,快速掌握这一革命性的AI开发框架。

fox0329的博客 2373

VC++ 打开文件或文件夹对话框的实现方法

       实际工作开发中,由于各种应用,我们需要调用系统的打开文件对话框或者打开文件夹对话框,或两者兼有。特总结了常用的实现方法,仅供开发参考。   1、 打开文件对话框   常用的方法是使用系统的CFileDialog。   在此介绍另外一种方法就是使用OPENFILENAME结构和GetOpenFileName()函数,可以实现单选文件或者多选文件,代码如下:   注意:包含头文件 #in...

weixin_34319111的博客 1401

提升仿真效率:Synopsys VCS高级编译选项优化技巧(2023最新版)

本文深入探讨了Synopsys VCS 2023版本中的高级编译选项优化技巧,帮助工程师提升仿真效率。通过并行编译、智能代码分析、精准覆盖率采样等策略,结合真实案例展示如何显著缩短仿真周期并优化资源使用,适用于数字芯片验证和大型SoC设计。

weixin_30338481的博客 114

AVM环视:系统搭建整体流程

文章目录前言一、畸变矫正鱼眼相机二、透视变换三、图像拼接四、图像融合总结 前言 由于正在做AVM环视,所以记录一下整个过程,归纳为一个系列文章,并对期间遇到的错误进行归纳整理。本文主要概括了AVM环视的大致流程和逻辑,不涉及代码部分,仅供思路参考,其中涉及的具体技术会在后期整理为小章节进行分析。 一、畸变矫正 鱼眼相机 做环视基本上使用到的是鱼眼照片,因为鱼眼相机的视角范围可以达到220°到230°,所以一个相机就可以采集到一个面的全部信息,例如汽车具有四个面,那么在汽车的前后左右分别安装一个鱼眼相机.

qq_34468890的博客 6536
上一篇: DuplicateHandle复制句柄保护文件
下一篇: VC6.0 DLL项目与WINDOWS项目的转换
sysprogram
博客等级 码龄17年 298粉丝 442原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值