这种方法只能打开很少的几个文件,文件很多时则打开不成功,返回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.Add(dlg.GetNextPathName(pos_file)); } } } //#include \"afxdlgs.h\" 包含文件 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务