一。打开文件夹:

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

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

  1. MFC实现打开、保存文件对话框和浏览文件夹对话框,把代码直接拷贝到要响应的按钮函数下面就行了

    MFC实现打开.保存文件对话框和浏览文件夹对话框,把代码直接拷贝到要响应的按钮函数下面就行了 一.打开.保存对话框 文件对话框属于通用对话框范畴(另外还有颜色,查找,查找替换,字体,打印等对话框). ...

  2. NetBeans 打开/保存具有指定编码的文件插件

    NetBeans 编码插件 此插件打开/保存具有指定编码的文件. 要求 NetBeans8.2+ 以编码方式打开/保存 文件 > 以编码方式打开/保存... 在状态行显示编码 当前文件编码将显示 ...

  3. linux文件浏览 ls,linux浏览文件命令

    在linux下我们要浏览文件的内容,可以通过相关的命令来执行操作,下面由学习啦小编为大家整理了linux下浏览文件命令的相关知识,希望对大家有所帮助! linux浏览文件命令1.cat [功能说明] ...

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

    2019独角兽企业重金招聘Python工程师标准>>> VC++ 打开文件夹,保存文件等对话框的调用 一.打开文件夹: 1.CFileDialog实现 CFileDialog hFi ...

  5. VC 文件操作(文件查找,打开/保存,读/写,复制/删除/重命名)

    右击项目->属性->字符集:使用多字节字符集. 这样可以使用char到CString的转化. char sRead[20] = ""; CString strtest ...

  6. VC 文件操作大全,打开,保存,复制,删除,查找等

    各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效 的代码.本文对Visual C++中有关文件操作进行了全面的 ...

  7. 弹出打开/保存文件对话框 选择文件夹对话框

    打开/保存文件对话框: CFileDialog::CFileDialog(BOOL bOpenFileDialog, //为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框LPCTSTR ...

  8. Archicad二次开发——MessageBox、USstring转字符、打开保存文件的对话框获取选择的地址、获取文件信息

    先吐槽一句,Archicad的二次开发实在太不友好(我技术太菜). 1.MessageBox MessageBox(NULL, "message","title" ...

  9. MFC文件操作大全,打开,保存,复制,删除,查找等

    各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效 的代码.本文对Visual C++中有关文件操作进行了全面的 ...

最新文章

  1. Oracle --获取绑定变量的值.
  2. RabbitMQ 如何消息生产者producer发送给RabbitMQ服务器broker?
  3. body添加代码 js_hexo 博客添加评论和阅读量
  4. 用 easy-json-schema 代替 json-schema 吧
  5. 微服务下的容器部署和管理平台Rancher
  6. 关于将一个数输出为原码、反码和补码的解惑
  7. python 文件操作 os.walk() 方法
  8. c语言中有bool型变量吗?
  9. cs文件中控制页面table的大小、title名称(.aspx)
  10. vavr_使用Vavr在Java 8流中更好的异常处理
  11. 用SMO算法实现了SVM的感悟
  12. JAVA毕设项目宠物店管理系统设计与实现(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
  13. MyBatis开发文档
  14. 画图工具的认识及应用计算机,认知画图软件教学设计
  15. 我的2016——我和嵌入式的那些事
  16. 约束满足问题(Constraint Satisfaction Problems——CSPs):回溯操作,向前检验,约束传播,局部搜索
  17. macOS 上编译 Dynamips
  18. 如何找出当前活动桌面背景图像的位置/路径(Ubuntu 18.04,GNOME)?
  19. 湖南省中职计算机应用教资笔试+面试心得
  20. 三国志战略版新赛季:先锋斥候北定中原

热门文章

  1. sqlserver2008数据库自动备份的sql脚本及使用bat命令执行脚本
  2. IBM的SOA方法论之一——五个切入点和八个场景
  3. python中的functools模块
  4. 026-微软Ajax异步组件
  5. nodejs随记04
  6. WCF PeerChannel介绍
  7. mysql accountlevel1_mysql---修改表结构
  8. 【数据结构与算法】之深入解析“石子游戏III”的求解思路与算法示例
  9. Swift之深入解析可选类型Optional的底层原理
  10. HarmonyOS之AI能力·助手类意图识别