探秘Visual Studio 2010中的灾难恢复功能
2009-03-11 17:45:41 来源:WEB开发网实例:创建支持重启管理器的MFC应用程序
下面我们以一个实际的例子,来看看如何在我们的MFC应用程序中添加对重启管理器的支持。
首先,启动Visual Studio 2010 CTP,创建一个单文档的应用程序RestartManagerDemo。按照我们前面的介绍,在“MFC应用程序向导”中选择“Support Restart Manager”和“Reopen previously open documents”选项,以支持应用程序的重新启动和文档的重新打开。
为了验证重启管理器重新打开文档的功能,我们在文档中添加一些数据,这些数据将在程序重新启动后自动被加载进来。
// 泡泡类,用于在视图中显示圆圈泡泡
class CBubble
{
public:
CBubble(CPoint cp, double fR)
{
m_nCenterPoint = cp;
m_fR = fR;
};
CBubble()
{};
// 圆心
CPoint m_nCenterPoint;
// 半径
double m_fR;
};
class CRestartManagerDemoDoc : public CDocument
{
protected: // create from serialization only
CRestartManagerDemoDoc();
DECLARE_DYNCREATE(CRestartManagerDemoDoc)
// Attributes
public:
// 保存数据的数组
CArray m_Array;
// Operations
public:
CArray& GetBubbleArray()
{
return m_Array;
};
//…
};
然后,我们需要实现文档的序列化函数,使得我们的文档数据能够保存和重新加载:
// CRestartManagerDemoDoc serialization
void CRestartManagerDemoDoc::Serialize(CArchive& ar)
{
// 保存数据
if (ar.IsStoring())
{
// TODO: add storing code here
int nSize = m_Array.GetSize();
ar<for(int nIndex = 0; nIndex < nSize; ++nIndex )
{
CBubble tempBubble = m_Array.GetAt( nIndex );
ar<ar<}
}
else // 加载数据
{
// TODO: add loading code here
int nSize = 0;
ar>>nSize;
for(int nIndex = 0; nIndex < nSize; ++nIndex )
{
//CBubble tempBubble = m_Array.GetAt( nIndex );
CPoint tempPoint;
double tempR;
ar>>tempPoint;
ar>>tempR;
m_Array.Add( CBubble( tempPoint, tempR) );
}
}
}
- ››Visual Basic 2008 数学函数
- ››Visual Studio2005中Smart Device的问题
- ››Visual Studio 中根据数据库字段动态生成控件
- ››Visual Studio 11全新黑色主题
- ››Visual Studio 2011 Beta新特性(一):安装VS201...
- ››Visual Studio自定义调试窗体两个小技巧
- ››Visual Studio 2005 Team Edition for Database P...
- ››Visual C#两分钟搭建BHO IE钩子
- ››探秘IE8 JavaScript功能超乎想象
- ››Visual C++优化对大型数据集合的并发访问
- ››VISUAL C++中的OCX控件的使用方法
- ››Visual C++实现视频图像处理技术
更多精彩
赞助商链接