我使用存放临时文件的方法来实现撤销编辑功能,
CFile file1(_T("c:\\First.clw"),CFile::modeReadWrite|CFile::modeCreate);
CArchive ar(&file1,CArchive::store);
Serialize(ar);保存文件是成功的。但是load的时候就没反应了。
我是这样load的
CVCadDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CFile file1(_T("c:\\First.clw"),CFile::modeReadWrite|CFile::modeCreate|CFile::modeNoTruncate);
CArchive ar(&file1,CArchive::load);
pDoc->Serialize(ar); //调用重载的serialize
Invalidate(FALSE);//刷新view请问这是什么原因阿?我应该怎样做才能用保存的临时文件来提换当前view中的文档?
CFile file1(_T("c:\\First.clw"),CFile::modeReadWrite|CFile::modeCreate);
CArchive ar(&file1,CArchive::store);
Serialize(ar);保存文件是成功的。但是load的时候就没反应了。
我是这样load的
CVCadDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CFile file1(_T("c:\\First.clw"),CFile::modeReadWrite|CFile::modeCreate|CFile::modeNoTruncate);
CArchive ar(&file1,CArchive::load);
pDoc->Serialize(ar); //调用重载的serialize
Invalidate(FALSE);//刷新view请问这是什么原因阿?我应该怎样做才能用保存的临时文件来提换当前view中的文档?
{
m_EntityList.Serialize(ar);
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
就这么写的阿,还需要做什么工作吗?
pDoc->RemoveView(pViewRemove);
-----------------------------
其实这个问题很简单的。把原来的doc->RemoveView(pViewRemove);
然后新在pDoc->AddView(pViewAdd);查一下msdn,看一下解释,你会更明白。
能不能不新建一个view,就直接在当前view中替换?
这个问题很难吗?
doc->RemoveView(view);
view->DestoryWindow();
doc->AddView(pViewAdd);
否则还要处理,父窗口的onsize.