MFC 中用ShellExecute执行文件后,无法关闭对话框,出现“没有找到 一未命名文件”
在对话框中点“浏览按钮”,出现文件选择框,打开文件后,就无法关闭对话框了相关的打开文件按钮如下:voidCShipinDlg::OnScan(){//TODO:Addyo...
在对话框中点“浏览按钮”,出现文件选择框,打开文件后,就无法关闭对话框了
相关的打开文件按钮如下:
void CShipinDlg::OnScan() { // TODO: Add your control notification handler code here UpdateData(TRUE); CFileDialog fileDlg(TRUE); fileDlg.m_ofn.lpstrFilter="All Files(*.avi)\0*.avi\0\0"; fileDlg.m_ofn.lpstrDefExt="*.avi"; CString m_open; CString m_filename; if(IDOK==fileDlg.DoModal()) { CFile file(fileDlg.GetFileName(),CFile::modeRead); m_open=fileDlg.GetPathName();//文件名+后缀 m_filename=fileDlg.GetFileName(); UpdateData(FALSE); } ShellExecute(NULL,"open",m_filename,NULL,"e:\\",NULL); }
关闭主对话框时出现
这是怎么回事呢? 展开
相关的打开文件按钮如下:
void CShipinDlg::OnScan() { // TODO: Add your control notification handler code here UpdateData(TRUE); CFileDialog fileDlg(TRUE); fileDlg.m_ofn.lpstrFilter="All Files(*.avi)\0*.avi\0\0"; fileDlg.m_ofn.lpstrDefExt="*.avi"; CString m_open; CString m_filename; if(IDOK==fileDlg.DoModal()) { CFile file(fileDlg.GetFileName(),CFile::modeRead); m_open=fileDlg.GetPathName();//文件名+后缀 m_filename=fileDlg.GetFileName(); UpdateData(FALSE); } ShellExecute(NULL,"open",m_filename,NULL,"e:\\",NULL); }
关闭主对话框时出现
这是怎么回事呢? 展开
展开全部
void CShipinDlg::OnScan()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrFilter="All Files(*.avi)\0*.avi\0\0";
fileDlg.m_ofn.lpstrDefExt="*.avi";
//CString m_open;
CString m_filename;
if(IDOK==fileDlg.DoModal())
{
//CFile file(fileDlg.GetFileName(),CFile::modeRead); //这是一个无用语句,去掉
//m_open=fileDlg.GetPathName();//这个也没用,去掉
m_filename=fileDlg.GetFileName();
UpdateData(FALSE);
}
ShellExecute(NULL,"open",m_filename,NULL,"e:\\",NULL);
}
报错可能是和CFile语句有关
更多追问追答
追问
我已经去年了,但还是报错,在网上查,说是使用了相对路径,但是我这个不涉及这上问题啊
追答
看看是不是文件名和路径的问题吧,把文件改名a.avi,然后放到e盘根目录,打开试试。
另外,ShellExecute是抛出式壳执行,先双击打开文件看看有没有问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询