MFC对话框程序小总结
来源:互联网 发布:手机怎么登录淘宝账号 编辑:程序博客网 时间:2024/05/20 16:13
迷你电话本
本文关键字:CArchive,CFile,CListCtrl,序列化,文件保存,列表控件 源程序见:下载
界面:(程序vc6.0下编译通过)
主要实现思路:
数据结构方面:
保存到硬盘,也就是保存到文件,方便读写(需要序列化的原因:由于CString对象,里面包好有指针对象,指针地址是随机分配的,也就是说这次保存得地址,下次启动时候可能是个空地址,除非数据结构直接用字符数组存储,但经验可以得知,数组保存很不方便)。
整个程序的核心数据都保存于CTypedPtrList<CObList,CPerson*> m_recordList;这个链表中,CTypedPtrList也是一个支持序列化操作的数据结构。
注意: DECLARE_SERIAL(CPerson);这一行不能漏掉,序列化支持的宏定义,然后在程序的定义实现文件中加上这一行IMPLEMENT_SERIAL(CPerson, CObject, 1|VERSIONABLE_SCHEMA),代表的是文档的版本,方便管理文件版本,比如说以后你因需要为CPerson结构体增加变量时,同时程序要兼容以前的版本文件,这个时候就需要判断版本号。
CPerson继承自CObject目的是用于序列化操作,CObject对象支持Serialize(CArchive& ar),保存到硬盘。
比如打开文件,就把上次保存得数据读进m_recordList中。
保存文件同样,把m_recordList数据逐个写到文件中
注意对照上述 保存和打开时候CFile,CArchive对象的区别。
上述是数据的保存操作方面的,以下是
数据显示:
CListCtrl m_list; //注意编辑对话框时,设置该控件为Report风格
扩展风格设置方面:
在OnInitDialog()函数中实现:
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
LVS_EX_CHECKBOXES 表示添加CheckBox
LVS_EX_FULLROWSELECT 表示选择整行
LVS_EX_GRIDLINES 表示添加表格线
LVS_EX_FULLROWSELECT 表示选中某行使整行高亮
更多风格请看MSDN,索引时输入LVS就可以看到很多风格设置项
设置完风格后,开始初始化该列表信息,比如列表头什么的,为各项添加“列”:
同样以上在OnInitDialog()函数中实现
上面的都是静态的,剩余的需要根据m_recordList中的数据来动态显示到CListCtrl控件中,为此,我单独写了个更新函数:
上面的重点是:插入行,比如:m_list.InsertItem(nIndex,pPerson->m_strName);,nIndex,就是第几行,当插入第一行之后,这一行只是会显示名字那一列数据,想要它显示性别,手机等信息的话,还需要继续设置,设置这一行的其他列:m_list.SetItemText(nIndex,i,pPerson->m_strSex) ;,这个作用就是设置第nIndex行的第i列数据。因为刚才名字已经是第0列了,所以现在设置就以1开始设置。
总的来说,CListCtrl的使用就是先设置需要什么列,然后插入行,插入的方式是以该行的第一列数据为代表插入,插入后设置其他列。
关键函数:InsertColumn()插入列,InsertItem插入行,SetItemText设置某一行的第几列数据
本文关键字:CArchive,CFile,CListCtrl,序列化
- MFC对话框程序小总结
- MFC小总结_2_对话框概述1
- MFC对话框程序: 回车,ESC对话框消失解决办法总结
- 第一个MFC小程序总结
- mfc基于对话框程序
- MFC基于对话框程序
- MFC基于对话框程序
- OSG+MFC对话框程序
- MFC对话框程序
- MFC 对话框编程 -- 总结
- mfc 对话框常用小技巧
- 对话框程序小技巧
- 对话框小程序
- MFC 对话框程序 添加菜单
- MFC对话框程序关闭顺序
- MFC 对话框程序基础解析
- 基于对话框的MFC程序
- MFC 对话框程序返回值
- RTP/RTCP protocols
- setDefaultKeyMode 用法介绍
- MFC对话框设置背景色及透明度
- Linux下RTP编程
- 一个人,一座城,一生心疼
- MFC对话框程序小总结
- 精简出最小 jre
- 字符串与数值相互转换的函数
- 文件数值求和---awk
- U盘 插入/删除 监测
- android canvas的画线和画字的区别
- 串口操作
- 迭代开发chips
- CSS代码布局八条最常见的错误