使用MFC的CFileDialog实现选择多个文件

原创 2012年03月23日 11:32:47
CFileDialog openDlg( TRUE,			/*bOpenFileDialog为TRUE时为打开文件,为FALSE时为保存文件*/
		   NULL,
		   NULL,
	            OFN_ALLOWMULTISELECT,	/*dwFlags为OFN_ALLOWMULTISELECT表示可以选择多个文件*/);
//构建CFielDialog对象时指定了OFN_ALLOWMULTISELECT的情况下,需要在对象DoModal()函数返回之前需要指定足够大
//的内存空间来存放文件名.如果选择的多个文件名组成的字符串长度大于指定的内存空间是就会导致DoModal()返回IDCANCEL.
/*申请内存来存放多个文件名组成的字符串*/
const int nMaxFiles = 1000;
const int nMaxPathBuffer = (nMaxFiles * (MAX_PATH + 1)) + 1;
LPWSTR pc = (LPWSTR)malloc(nMaxPathBuffer * sizeof(WCHAR));
if( pc )
{
  openDlg.GetOFN().lpstrFile = pc;							
  openDlg.GetOFN().lpstrFile[0] = NULL;
  openDlg.nMaxFile = nMaxPathBuffer;
  if( openDlg.DoModal() == IDOK )
  {
     POSITION posStart = openDlg.GetStartPosition();
     while( posStart )
     {
        //从pc所指向的内存中解析出每个文件的名字,这里的fileName所占的内存不能和pc所占的内存发生冲突
         CString fileName = openDlg.GetNextPathName();									
     }
  }
  free(pc);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MFC 文件对话框之打开多个文件

原文地址:http://blog.csdn.net/leesaiya/article/details/7372260 关键在于对话框初始化里的参数 OFN_ALLOWMULTISELECT CFi...

MFC打开文件对话框,选择多个文件

size_t index;     CString cstrsucstring;     CFileDialog filedlg(TRUE,NULL,NULL,OFN_HIDEREADONL...

MFC 利用CFileDialog读取文件夹和多个文件

参考资料 http://blog.sina.com.cn/s/blog_640577ed0101do4n.html http://blog.csdn.net/wutaozhao/article/d...

CFileDialog选择多个文件

转自:http://my.csdn.net/shuting_guo/code/detail/8522 C++代码: //同时打开N个文件 void COpenNFileDlg::OnButton...

CFileDialog 多选文件

CFileDialog这个文件选择框类默认是单选的,那么如果要多选该怎么办呢?这里给出一种完整的做法。

MFC对话框选择多个文件及选择文件夹

本文主要介绍:MFC中,如何用对话框选择多个文件,以及如何选择文件夹(不选择文件)。 一、对话框选择多个文件 对话框的设置比较简单,只需在对话框风格中添加 OFN_ALLOWMULTISELECT...

CFileDialog选择多个文件

CFileDialog构造函数原型如下:

CFileDialog 打开多个文件

  • 2012-11-04 15:29
  • 700B
  • 下载

CFileDialog文件选择对话框的使用

CFileDialog文件选择对话框的使用 CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:  CFileDialog::CFile...

CFileDialog文件选择对话框的使用与定义

在CommDlg.h中有如下定义,在不使用MFC时,可以用该结构体的对象设置打开文件对话框属性,再配合GetOpenFileName(OPENFILENAMEA &of)函数实现打开文件。 type...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)