要求使用doc檔案里的Serialize函式。
比如在view中畫出了一條直線,怎么保存下來并且可以打開繼續編輯?

uj5u.com熱心網友回復:
記錄 2點 和 顏色uj5u.com熱心網友回復:
這些資料都是點陣列,而點是MFC的中自帶的資料結構,MFC中的資料結構可以使用序列化機制吧資料寫入檔案,還能正確加載uj5u.com熱心網友回復:
詳情請看這個鏈接。我用#CSDN#這個app發現了有技術含量的博客,小伙伴們求同去《MFC關鍵技術-永久保存機制》, 一起來圍觀吧 https://blog.csdn.net/TxyITxs/article/details/103609290?utm_source=app
uj5u.com熱心網友回復:






uj5u.com熱心網友回復:
自己設計資料結構來存盤資料,讀取資料就OK了
uj5u.com熱心網友回復:
給你一個 例子 : (沒有顏色)
void CDrawLinesDoc::Serialize(CArchive& ar)
{
//
CMainFrame *pfrm=(CMainFrame *)AfxGetMainWnd();
CDrawLinesView *pvw=(CDrawLinesView *)pfrm->GetActiveView();
//
CFile* pFile = ar.GetFile();
if (ar.IsStoring())
{
// TODO: add storing code here
list<LINE>::iterator pLine;
for(pLine=pvw->m_listAllLine.begin();pLine!=pvw->m_listAllLine.end();pLine++)
{
pFile->Write(&pLine->pStart,sizeof(CPoint));
pFile->Write(&pLine->pEnd,sizeof(CPoint));
}
}
else
{
// TODO: add loading code here
pvw->m_listAllLine.clear();
struct LINE lTemp;
UINT rdCount;
do
{
rdCount=pFile->Read(&lTemp.pStart,sizeof(CPoint));
rdCount=pFile->Read(&lTemp.pEnd,sizeof(CPoint));
pvw->m_listAllLine.push_back(lTemp);
} while (rdCount > 0);
pvw->Invalidate();
}
}
uj5u.com熱心網友回復:
通過檔案獲取資料,然后寫到檔案里。最近也在做這個方面的作業,如果有檔案格式要求,需要專門看這個檔案格式。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/11990.html
標籤:圖形處理/算法
上一篇:在安裝Visual Studio 2019時總是顯示無法安裝microsoft.VisualStudio.Devenv.Msi是什么問題?求大神解答。該如何解決
下一篇:ScrollWindow 不滾動
