编程小白:MFC画出的图形怎么保存到磁盘,并且可以打开继续绘制

AWTLying 2020-06-16 02:50:46
要求使用doc文档里的Serialize函数。
比如在view中画出了一条直线,怎么保存下来并且可以打开继续编辑?
...全文
361 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
草履虫程序员 2020-06-19
  • 打赏
  • 举报
回复
通过文档获取数据,然后写到文件里。最近也在做这个方面的工作,如果有文件格式要求,需要专门看这个文件格式。
schlafenhamster 2020-06-18
  • 打赏
  • 举报
回复
给你一个 例子 : (没有颜色)

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(<emp.pStart,sizeof(CPoint));
rdCount=pFile->Read(<emp.pEnd,sizeof(CPoint));
pvw->m_listAllLine.push_back(lTemp);
} while (rdCount > 0);
pvw->Invalidate();
}
}
sichuanwww 2020-06-17
  • 打赏
  • 举报
回复
自己设计数据结构来存储数据,读取数据就OK了
秘境之眼 2020-06-16
  • 打赏
  • 举报
回复
引用 楼主 Lydia_LZT的回复:
要求使用doc文档里的Serialize函数。
比如在view中画出了一条直线,怎么保存下来并且可以打开继续编辑?
秘境之眼 2020-06-16
  • 打赏
  • 举报
回复
详情请看这个链接。 我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《MFC关键技术-永久保存机制》, 一起来围观吧 https://blog.csdn.net/TxyITxs/article/details/103609290?utm_source=app
秘境之眼 2020-06-16
  • 打赏
  • 举报
回复
这些数据都是点数组,而点是MFC的中自带的数据结构,MFC中的数据结构可以使用序列化机制吧数据写入文件,还能正确加载
schlafenhamster 2020-06-16
  • 打赏
  • 举报
回复
记录 2点 和 颜色

19,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧