- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
案例三十 通讯录 本案例知识要点 文件操作 对话框设计 CListCtrl的使用 一、案例需求 案例描述 使用C++输入/输出流设计一个基于对话框的通讯录,用于编辑和保存用户的姓名、电话和E-mail信息。 案例效果图 本案例的效果如图(a)和图(b)所示。 功能说明 插入记录:用于输入个人信息,包括姓名、电话和E-mail。 删除记录:用于删除一条选定的记录。 修改记录:用于修改个人信息。 保存记录:用于将个人信息写入文件。 导入:用于将个人信息从文件中导入。 退出:退出应用程序。 二、案例分析 根据案例需求,需要利用MFC环境定义一个对话框类,提供程序的初始界面,其中包括一个列表控件用于显示通讯录的信息,同时还包括【插入记录】单击、【删除记录】单击、【修改记录】按钮、【保存记录】按钮、【导入数据】按钮和【退出】按钮;另外定义了一个用于插入记录和修改记录的对话框,其中包括用于编辑通讯录信息的文本框等控件。 案例的核心是列表控件的使用,记录的插入、删除、修改、判断是否为空等功能都直接利用了列表控件本身的方法。案例没有使用数据库进行系统的开发,记录的保存是基于输入/输出流使用文件实现了信息的存储。 三、案例设计 1.“通讯录”对话框的设计 从控件列表框中【选择】按钮控件和列表控件置于对话框上,【修改】按钮控件的属性,其设计结果如图所示。 对话框的设计结果 在“查看”菜单中选择Class Wizard命令,在打开的对话框中切换到Member Variable选项卡。选中列表控件的IDC_LIST1,单击【Add Variable】按钮,添加成员变量的名称为m_list,类型为CListCtrl,单击【OK】按钮返回,设计结果如图所示。 对话框类成员变量的设计结果 在文件视图FileView中单击Source Files目录,双击Example5Dlg.cpp选项打开该文件。在文件中找到OnInitDialog()函数,在// TODO: Add extra initialization here的提示下,添加以下代码: m_list.ModifyStyle(0,LVS_REPORT); //修改显示风格 m_list.InsertColumn(0,姓名,LVCFMT_CENTER,70,NULL); //添加“姓名”列 m_list.InsertColumn(1,电话,LVCFMT_CENTER,100,NULL); //添加“电话”列 m_list.InsertColumn(2,Email,LVCFMT_CENTER,150,NULL); //添加“Email”列 2.“输入信息”对话框设计 添加对话框,双击该对话框,创建一个新类,添加类名为Inputdlg,如图所示。 在“查看”菜单中选择Class Wizard命令,在打开的对话框中切换到Member Variable选项卡。选中列表控件的IDC_EDIT1选项,单击【Add Variable】按钮,添加Member variable name为m_name,类型为CString,单击【OK】按钮返回,依次处理IDC_EDIT2、IDC_EDIT3,最终设计结果如图所示。 输入对话框设计结果 在“通讯录”对话框中,双击【插入记录】按钮,弹出对话框,如图所示,保持函数名默认值为OnBUTTONinsert(),单击【OK】按钮进行代码编辑。依此类推,处理其他按钮。 (1)【插入记录】按钮的成员函数为: void CExample5Dlg::OnBUTTONinsert() (2)【删除记录】按钮的成员函数为: void CExample5Dlg::OnBUTTONdelete() (3)【修改记录】按钮的成员函数为: void CExample5Dlg::OnBUTTONmodify() (4)【保存记录】按钮的成员函数为: void CExample5Dlg::OnBUTTONsave() (5)【导入】按钮的成员函数为: void CExample5Dlg::OnBUTTONload() 四、案例实现 五、案例总结与提高 案例总结 本案例重点在于ListView控件的使用,如果读者感觉有难度,那么只要理解【插入记录】按钮和【导入】按钮函数的实现就可以了,要认真体会本案例是如何读入和存储数据的。 本案例在输入个人信息时,在Email的EDIT控件中检查了是否有“@”字符的存在。 通讯录是以book.txt文件保存在当前目录下的,请读者打开观看,同时也可以直接在book.txt文件中添加人员,并在程序中导入。 案例提高 修改【退出】按钮,使其具
文档评论(0)