博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[MFC]选择目录对话框和选择文件对话框
阅读量:6341 次
发布时间:2019-06-22

本文共 1180 字,大约阅读时间需要 3 分钟。

制作选择目录和选择文件对话框,一般用到BROWSEINFO结构,如下:

  • BROWSEINFO结构: 
  •     HWND hwndOwner,指定对话框的父窗口的句柄 
  •     LPCITEMIDLIST pidlRoot,指定打开浏览的根目录,若为NULL,表示桌面 
  •     LPSTR pszDisplayName,指定一个缓冲区,接收用户选择的目录的显示名称 
  •     LPCSTR lpszTitle,树形视图上方显示的文字 
  •     UINT ulFlags,指定属性 
  •     BFFCALLBACK Lpfn,指定回调函数,发生某些事件时,指定的函数被调用,允许程序进一步定制对话框的行为 
  •     LPARAM lParam,若指定回调函数,参数值传递给回调函数 
  •     int iImage,代表用户选择的文件夹对象的图标在系统图标列表中的索引

下面贴上选择目录对话框的代码实现:

void CExchangeDlg::OnBrowser() // 选择目录,我这里是浏览按钮

{

char szPath[MAX_PATH];

 CString str;

 ZeroMemory(szPath,sizeof(szPath));

 BROWSEINFO bi;

 bi.hwndOwner=m_hWnd;
 bi.pidlRoot=NULL;
 bi.pszDisplayName=szPath;
 bi.lpszTitle="请选择所需目录:";
 bi.ulFlags=0;
 bi.lpfn=NULL;
 bi.lParam=0;
 bi.iImage=0;

 LPITEMIDLIST lp=SHBrowseForFolder(&bi);

 if(lp && SHGetPathFromIDList(lp,szPath))

 {
  str.Format("选择的目录为 %s",szPath);
  AfxMessageBox(str);

 }else{

  AfxMessageBox("无效的目录,请重新选择");

 }

 m_selectFile=szPath;
 UpdateData(FALSE);

}

文件选择对话框实现代码:

 CString strFile=_T(" ");

 CFileDialog dlgFile(TRUE,NULL,NULL,OFN_HIDEREADONLY,
  _T("Describe Files(*.cfg) | *.cfg | All Files(*.*) | *.* |"),NULL);
  if(dlgFile.DoModal())
  {
   strFile=dlgFile.GetPathName();

  }

  m_selectFile=strFile;  //m_selectFile对话框中静态文本框关联的变量

转载于:https://www.cnblogs.com/zuihaodeziji/p/4604308.html

你可能感兴趣的文章
linux服务器与windows服务器区别及怎么选择?
查看>>
阿里云联合通达信科等上百家知名软件服务商发布金盾宣言
查看>>
Kotlin伴生对象与静态成员
查看>>
用户远程接入阿里云VPC
查看>>
深入浅出话属性
查看>>
Django学习(五)优雅地分页展示网页
查看>>
高级语言课程设计报告第二次报告:枚举的优化
查看>>
Java多线程-实例解析
查看>>
跨域访问
查看>>
Spring IOC 容器源码分析 - 余下的初始化工作
查看>>
GoPro Karma谍照曝光,这是要提前造势吗?
查看>>
Spring-boot整合vue遇到的坑
查看>>
VS 2019 for Mac 第 3 个预览版发布,新编辑器、Xamarin 开发改进
查看>>
Taro 1.2.16 发布,BAT 小程序、H5 与 RN 端统一框架
查看>>
2018-05-21 第十五天
查看>>
非技术文章|大学生程序员跑大连马拉松
查看>>
javascript推荐书籍
查看>>
OC3大会给行业者的启发:移动VR、IP内容、未来图景
查看>>
2星|《你的团队需要怎样的领导者》:面向小企业的管理咨询公司的训练手册...
查看>>
Redis进阶实践之十一 Redis的Cluster集群搭建
查看>>