CObject::Serialize

gumaolin 2005-09-22 02:43:03
有那位高人,能帮小弟一个忙,在看过Afx.h (CObject类在那里声明) 和ObjCore.cpp(CObject类在那里定义),可就是没找到CObject::Serialize函数的实现代码。如果哪位兄弟姐妹知道,望告知。十分感谢!!!!!!!!!
...全文
90 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2005-09-22
  • 打赏
  • 举报
回复
_AFX_INLINE void CObject::Serialize(CArchive&)
{ /* CObject does not serialize anything by default */ }
在afx.inl中。
较为完整的vc++ 画图程序 IMPLEMENT_SERIAL(CShape,CObject,1) IMPLEMENT_SERIAL(CLine,CShape,1) IMPLEMENT_SERIAL(CRectangle,CShape,1) IMPLEMENT_SERIAL(CCircle,CShape,1) IMPLEMENT_SERIAL(CCurve,CShape,1) IMPLEMENT_SERIAL(CEllipse,CShape,1) CShape::CShape(void) { } CShape::~CShape(void) { } CRect CShape::GetBoundRect() { CRect BoundingRect; // Object to store bounding rectangle BoundingRect = m_EnclosingRect; // Store the enclosing rectangle // Increase the rectangle by the pen width BoundingRect.InflateRect(m_Pen, m_Pen); return BoundingRect; // Return the bounding rectangle } void CShape::Serialize(CArchive& ar) { CObject::Serialize(ar); if(ar.IsStoring()) { ar<se { ar>>m_Color>>m_Brush>>m_EnclosingRect>>m_Pen; } } CLine::CLine(void) { } CLine::~CLine(void) { } // CLine class constructor CLine::CLine(CPoint Start, CPoint End, COLORREF aColor,int PenWidth) { m_StartPoint = Start; // Set line start point m_EndPoint = End; // Set line end point m_Color = aColor; //m_Brush=aBrush;// Set line color m_Pen = PenWidth; // Set pen width // Define the enclosing rectangle m_EnclosingRect = CRect(Start, End); m_EnclosingRect.NormalizeRect(); } // Draw a CLine object void CLine::Draw(CDC* pDC) { // Create a pen for this object and // initialize it to the object color and line width of 1 pixel CPen aPen; if(!aPen.CreatePen(PS_SOLID, m_Pen, m_Color)) { // Pen creation failed. Abort the program AfxMessageBox(_T("Pen creation failed drawing a line"), MB_OK); AfxAbort(); } CPen* pOldPen = pDC->SelectObject(&aPen;); // Select the pen // Now draw the line pDC->MoveTo(m_StartPoint); pDC->LineTo(m_EndPoint); pDC->SelectObject(pOldPen); // Restore the old pen } void CLine::Serialize(CArchive& ar) { CShape::Serialize(ar); if(ar.IsStoring()) { ar<se { ar>>m_StartPoint>>m_EndPoint; } }

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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