码迷,mamicode.com
首页 > 编程语言 > 详细

[MFC]选择目录对话框和选择文件对话框

时间:2015-06-27 18:11:47      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

制作选择目录和选择文件对话框,一般用到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对话框中静态文本框关联的变量

[MFC]选择目录对话框和选择文件对话框

标签:

原文地址:http://www.cnblogs.com/zuihaodeziji/p/4604308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!