CStroke::CStroke(UINT nPenWidth)
{
m_nPenWidth = nPenWidth;
m_rectBounding.SetRectEmpty();
}
void CStroke::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << m_rectBounding;
ar << (WORD)m_nPenWidth;
m_pointArray.Serialize(ar);
}
else
{
ar >> m_rectBounding;
WORD w;
ar >> w;
m_nPenWidth = w;
m_pointArray.Serialize(ar);
}
}
这个是我自定义的一个类,其中类成员m_nPenWidth的类型是UINT,但是在存储这个数据成员的时候为什么还要有个转化为WORD的过程ar << (WORD)m_nPenWidth,读出的时候也有先定义一个WORD w;的过程?请高手指点。