急问!在线等!! 如何在一个打开文件窗口中选择多个文件并且一起打开?最好有程序源码!学习学习! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (和源码差不多,可以这样做)1、创建基于多文档的应用程序,注意在AppWizard过程中,为CView类选择基类为CEditView2、通过ClassWizard添加CXXXView类的ID_FILE_OPEN命令处理函数,并写入以下代码:void CXXXView::OnFileOpen() { TCHAR *pszFile = new TCHAR[MAX_PATH * MAX_PATH]; memset(pszFile,0,sizeof(TCHAR)*MAX_PATH * MAX_PATH); //config file dialog CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT|OFN_ENABLESIZING , _T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"), NULL); dlg.m_ofn.lpstrFile = pszFile; dlg.m_ofn.nMaxFile = MAX_PATH*MAX_PATH; CString sPathName; int nRetValue; nRetValue = dlg.DoModal(); if (nRetValue == IDOK) { POSITION Pos; Pos = dlg.GetStartPosition(); while (Pos != NULL) { sPathName = dlg.GetNextPathName(Pos);//这里就可以遍历选中的文件 //AddPath(sPathName);这里是我的处理函数,你自己随便做了 AfxGetApp()->OpenDocumentFile(sPathName); } // while } // if}(试试吧,我试过了) char namebuf[8192]; memset(namebuf, 0, 8192); static char BASED_CODE szFilter[] = "所有文件(*.*)|*.*|BMP位图(*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|JEPG文件(*.jpg;*.jpeg;*.jpe;*.jif)|*.jpg;*.jpeg;*.jpe;*.jif|GIF计算机服务(*.gif)|*.gif|ICO图标(*.ico)|*.ico|TIFF Tag图像(*.tif;*.tiff)|*.tif;*.tiff|Windows图元文件(*.wmf)|*.wmf|PNG便携网络图形(*.png)|*.png|TGA Targa(*.tga)|*.tga||"; CPreviewFileDlg dlg(TRUE,NULL,NULL, OFN_ALLOWMULTISELECT | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter); dlg.m_ofn.lpstrFile = namebuf; dlg.m_ofn.nMaxFile = 8192; dlg.m_ofn.lpstrTitle = "选择需要上传的文件(可多选)"; if(dlg.DoModal() == IDOK) { POSITION pos; pos = dlg.GetStartPosition(); for(;;) { this->UpdateWindow(); Sleep(500); CString path; CString name; try { path = dlg.GetNextPathName(pos); name = GetName(path); } catch(...) { break; } UploadFile(path, name); } OnOpenset(); this->UpdateWindow(); } else { DWORD error = CommDlgExtendedError(); if(error == 0) { AfxMessageBox("没有选择文件!"); } else { AfxMessageBox("选择文件数目过多!"); } } 编辑器选中效果的绘制 std::locale::global 的问题 中秋节前期散分 日历控件的Allow Edit问题 求教VC如何实现多屏投影的拼接? 懂myicq的请进! 请教关于PDF打开的问题 如何将鼠标箭头隐藏到窗口后面? 我的VS2012不能新建MFC项目,怎么解决,各位大神,我是学校,谢谢 关于线程中,调用对话中控件的问题。 关于程序变速的问题=====高分求知!!!!!! 动态数组??再线等待!
1、创建基于多文档的应用程序,注意在AppWizard过程中,为CView类选择基类为CEditView
2、通过ClassWizard添加CXXXView类的ID_FILE_OPEN命令处理函数,并写入以下代码:
void CXXXView::OnFileOpen()
{
TCHAR *pszFile = new TCHAR[MAX_PATH * MAX_PATH];
memset(pszFile,0,sizeof(TCHAR)*MAX_PATH * MAX_PATH);
//config file dialog
CFileDialog dlg(TRUE,
NULL,
NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT|OFN_ENABLESIZING ,
_T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"),
NULL);
dlg.m_ofn.lpstrFile = pszFile;
dlg.m_ofn.nMaxFile = MAX_PATH*MAX_PATH;
CString sPathName;
int nRetValue;
nRetValue = dlg.DoModal();
if (nRetValue == IDOK)
{
POSITION Pos;
Pos = dlg.GetStartPosition();
while (Pos != NULL)
{
sPathName = dlg.GetNextPathName(Pos);//这里就可以遍历选中的文件
//AddPath(sPathName);这里是我的处理函数,你自己随便做了
AfxGetApp()->OpenDocumentFile(sPathName);
} // while
} // if
}
(试试吧,我试过了)
memset(namebuf, 0, 8192);
static char BASED_CODE szFilter[] = "所有文件(*.*)|*.*|BMP位图(*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|JEPG文件(*.jpg;*.jpeg;*.jpe;*.jif)|*.jpg;*.jpeg;*.jpe;*.jif|GIF计算机服务(*.gif)|*.gif|ICO图标(*.ico)|*.ico|TIFF Tag图像(*.tif;*.tiff)|*.tif;*.tiff|Windows图元文件(*.wmf)|*.wmf|PNG便携网络图形(*.png)|*.png|TGA Targa(*.tga)|*.tga||";
CPreviewFileDlg dlg(TRUE,NULL,NULL, OFN_ALLOWMULTISELECT | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter);
dlg.m_ofn.lpstrFile = namebuf;
dlg.m_ofn.nMaxFile = 8192;
dlg.m_ofn.lpstrTitle = "选择需要上传的文件(可多选)";
if(dlg.DoModal() == IDOK)
{
POSITION pos;
pos = dlg.GetStartPosition();
for(;;)
{
this->UpdateWindow();
Sleep(500);
CString path;
CString name;
try
{
path = dlg.GetNextPathName(pos);
name = GetName(path);
}
catch(...)
{
break;
}
UploadFile(path, name);
}
OnOpenset();
this->UpdateWindow();
}
else
{
DWORD error = CommDlgExtendedError();
if(error == 0)
{
AfxMessageBox("没有选择文件!");
}
else
{
AfxMessageBox("选择文件数目过多!");
}
}