情况是这样的:
一个单文档程序。
我现在在view 中画了一条直线,一个圆和一个椭圆。然后我点击了保存按钮,文件的确是保存起来了,但是那个文件里面什么都没有是空的,我知道我应该要重写虚函数 CDocument::OnSaveDocument() 函数,但是我想知道,用CClientDC 画的这些图,应该怎么保存这些数据到这个文件中呢,做到下次再打开这个文件的时候就跟保存的时候一样。MFCOnSaveDocument
一个单文档程序。
我现在在view 中画了一条直线,一个圆和一个椭圆。然后我点击了保存按钮,文件的确是保存起来了,但是那个文件里面什么都没有是空的,我知道我应该要重写虚函数 CDocument::OnSaveDocument() 函数,但是我想知道,用CClientDC 画的这些图,应该怎么保存这些数据到这个文件中呢,做到下次再打开这个文件的时候就跟保存的时候一样。MFCOnSaveDocument
解决方案 »
- 自绘列表控件的网格线粗细如何设置
- 有时当在ContinueModal()中,为什么如何解决?
- 请问怎样在View中某自定义函数内调用OnDraw函数?
- 在北京哪里去买光盘
- 我想做一个类似qq的注册对话框的程序,每个步骤有一些框框要填,然后点击下一步这样,应该添加什么组件呢?
- 有没有API调用windows2000中淡黄色带尖角的提示(tip)窗口?
- 有谁知道exe文件的文件结构?????
- VC error LNK2005:代码错误!!!!!
- Microsoft在视频方面的缺陷:关于对Microsoft Media Encoder广播控制问题!!!!!
- win98不用写VCL vxd下如何处理硬件中断?
- m_SerialPort.InitPort()串口初始化时没有找到串口 直接返回0了
- 200分求 在WIN7 64位+VS2008能用的BoundsChecker~~~~~~~~
========
其实你要存储读取自定义的东西,没必要去重写OnSaveDocument
因为mfc已经为你做好框架了
你只要去改写 Doc的serialize函数就可以
下面摘自那个例子void CScribbleDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << m_sizeDoc;
}
else
{
ar >> m_sizeDoc;
}
m_strokeList.Serialize(ar);
}
真心没看懂啊,Serialize() 函数没见过,它的那个参数也不见过。解释下吧!
我把画的那些图的数据保存到DOC 类(添加了几个成员变量:容器)中,保存的时候存了这些数据,打开的时候取出这些数据让view 去重新绘制。
我保存了数据,也读出了数据,我怎么在view 里面去使用这些数据重新绘制原来的图形呢?有些什么函数啊?
之前我是没找到重新绘制这些图的地方应该在哪里,现在我找到了,我在View 中找到了一个OnDraw() 函数,在里面添加了绘制这些图形的代码。之后我最小化再找开也行了,它的功能应该是出现什么情况之后会调用它(我估计的)。就好像不断刷新一样!
直接看深入浅出MFC,别在这问浪费时间了
把侯捷那个例子默出来你什么都懂了