使用 MFC 串行化数据和 C++ 对象
2009-03-07 20:02:29 来源:WEB开发网更新文档数据
当用户修改了视图类的数据成员,即修改了窗体编辑框中的内容时,执行这些代码后也会修改文档类的数据成员。
void CFooView::OnEnChangeName()
{
// 用屏幕输入更新控件变量
UpdateData(TRUE);
// 获得文档指针
CFooDoc* pDoc =(CFooDoc*)GetDocument();
// 更新文档
CPhone* pPhone = (CPhone*)m_pList->GetAt(m_position);
pPhone->m_Name = m_Name;
// 置修改标志为 TRUE
pDoc->SetModifiedFlag();
}
在列表中移动记录,修改视图类中相应的函数。
// 声明一个临时的位置变量
POSITION temp_pos;
// 用当前的列表位置更新 temp_pos
temp_pos = m_position;
// 用前一个/或后一个位置更新 temp_pos
m_pList->GetPrev(temp_pos);
if ( temp_pos == NULL)
{
// no previous element
MessageBox(_T("Bottom of file encountered!"),_T("Phone for Windows"));
}else
{
// 用列表前一个记录内容更新视图成员数据
m_position = temp_pos;
CPhone* pPhone = (CPhone*)m_pList->GetAt(m_position);
m_Name = pPhone->m_Name;
m_Phone = pPhone->m_Phone;
UpdateData(FALSE);
}
// 控制输入焦点
((CDialog*) this)->GotoDlgCtrl(GetDlgItem(IDC_NAME));
更多精彩
赞助商链接