WEB开发网
开发学院软件开发VC 使用 MFC 串行化数据和 C++ 对象 阅读

使用 MFC 串行化数据和 C++ 对象

 2009-03-07 20:02:29 来源:WEB开发网   
核心提示: 删除 m_PhoneList 列表中的内容因为 m_PhoneList 是在内存中维护的,所以要随时维护,使用 MFC 串行化数据和 C++ 对象(3),只要下面三个事件中的任何一个事件发生,都需要从内存中删除 m_PhoneList 列表中的对象:用户退出应用程序;用户开始一个新的文档

删除 m_PhoneList 列表中的内容

因为 m_PhoneList 是在内存中维护的,所以要随时维护,只要下面三个事件中的任何一个事件发生,都需要从内存中删除 m_PhoneList 列表中的对象:

用户退出应用程序;

用户开始一个新的文档,如从“File”菜单中选择“New”选项;

用户打开一个已存在的文档,如从“File”菜单中选择“Open”选项;

在文档类的头文件中声明删除操作的函数:

virtual void DeleteContents();

其实现如下:

// 删除列表中的所有项目并释放列表对象占用的内存
while ( ! m_PhoneList.IsEmpty() )
{

delete m_PhoneList.RemoveHead();
}

视图类处理:

声明视图类的数据成员:

POSITION m_position; // 在文档类列表中的当前位置
CObList* m_pList; // 指向文档类的列表

在 OnInitialUpdate()函数中初始化视图类的数据成员


POSITION m_position; 

CObList* m_pList;   



// 获取文档类指针

CFooDoc* pDoc = (CFooDoc*) GetDocument();


// 获得文档类 m_PhoneList 的地址

m_pList = &(pDoc->m_PhoneList);


// 获得列表头位置

m_position = m_pList->GetHeadPosition();


// 用文档类数据更新视图类数据成员

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));

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 MFC 串行

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接