您好,欢迎来到吉趣旅游网。
搜索
您的当前位置:首页cfiledialog打开多个文件,较健全

cfiledialog打开多个文件,较健全

来源:吉趣旅游网
1.方法一

这种方法只能打开很少的几个文件,文件很多时则打开不成功,返回IDCANCLE,要打开很多只能采用另外一种方法。

void hello() {

//声明对话框实例 CFileDialog

dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,

_T(\"DWG Files(*.dwg)|*.dwg||\"),NULL);

//显示对话框

if(IDOK == dlg.DoModal()) {

POSITION pos = dlg.GetStartPosition(); while (pos != NULL) {

CString strPath = dlg.GetNextPathName(pos); acutPrintf(_T(\"\\n\")); acutPrintf(strPath); }//end while }//end if } 2.方法二

通过修改文件名缓冲区即可对打开文件最大数进行调整

void hello() {

// 创建打开多文件对话框.

CFileDialog dlg(true, NULL, NULL,

OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, _T(\"DWG Files(*.dwg)|*.dwg||\"),NULL); // 创建文件名集合缓冲区.

dlg.m_ofn.lpstrTitle=_T(\"请选择需要打印文件\");//设置对话框标题 dlg.m_ofn.nMaxFile = 100 * MAX_PATH;//最多可以打开100个文件 dlg.m_ofn.lpstrFile = new TCHAR[dlg.m_ofn.nMaxFile]; ZeroMemory(dlg.m_ofn.lpstrFile, sizeof(TCHAR) * dlg.m_ofn.nMaxFile); //清零,必须

//显示文件对话框,获得文件名集合 if (dlg.DoModal() == IDOK) {

POSITION pos_file;

pos_file = dlg.GetStartPosition(); CArray ary_filename; while(pos_file != NULL) {

ary_filename.Add(dlg.GetNextPathName(pos_file)); } } }

//#include \"afxdlgs.h\" 包含文件

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务