MFC不能重复打开同一个文件

时间:2022-12-21 16:19:24
vc6多文档程序,用OnOpenDocument打开一个文件(读取数据之后close,不存在违例共享问题),显示到view,然后再重复操作,就没任何反映了,OnOpenDocument也没执行,求大神指点

7 个解决方案

#1


事件消息映射没搞对吧

#2


OnOpenDocument都没有执行?

#3


放一个 MessageBox 看看。

#4


你是怎么关闭的?
mfc 的 决定是否打开一个doc ,我记得是通过,一个“脏”标记来确定的

#5


是win系统不允许同一个文件重复打开的....需要在软件中换一下当前文档的后缀名或者文件名,然后才能打开

#6


我在C***App中重载了OpenDocumentFile   然后在重载函数中添加如下语句然后就可以了
CDocument *pDoc = ((CMainFrame*)m_pMainWnd)->GetActiveDocument();
pDoc->SetPathName (_T("123"));
return CWinApp::OpenDocumentFile(lpszFileName);

#7


我按6楼的方法没实现,不过最后我是这么干的,不知道有没有什么问题。
在C***App中重载OpenDocumentFile   然后在重载函数中添加如下语句
CDocument *pDoc = ((CMainFrame*)m_pMainWnd)->GetActiveDocument();
pDoc->OnOpenDocument(lpszFileName);
return pDoc;

#1


事件消息映射没搞对吧

#2


OnOpenDocument都没有执行?

#3


放一个 MessageBox 看看。

#4


你是怎么关闭的?
mfc 的 决定是否打开一个doc ,我记得是通过,一个“脏”标记来确定的

#5


是win系统不允许同一个文件重复打开的....需要在软件中换一下当前文档的后缀名或者文件名,然后才能打开

#6


我在C***App中重载了OpenDocumentFile   然后在重载函数中添加如下语句然后就可以了
CDocument *pDoc = ((CMainFrame*)m_pMainWnd)->GetActiveDocument();
pDoc->SetPathName (_T("123"));
return CWinApp::OpenDocumentFile(lpszFileName);

#7


我按6楼的方法没实现,不过最后我是这么干的,不知道有没有什么问题。
在C***App中重载OpenDocumentFile   然后在重载函数中添加如下语句
CDocument *pDoc = ((CMainFrame*)m_pMainWnd)->GetActiveDocument();
pDoc->OnOpenDocument(lpszFileName);
return pDoc;