您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > MFC制作一个简单的通讯录
目录退出目录第1页共46页案例三十通讯录本案例知识要点文件操作对话框设计CListCtrl的使用目录退出目录第2页共46页一、案例需求案例描述使用C++输入/输出流设计一个基于对话框的通讯录,用于编辑和保存用户的姓名、电话和E-mail信息。案例效果图本案例的效果如图(a)和图(b)所示。目录退出目录第3页共46页(a)“输入信息”对话框(b)“通讯录”对话框目录退出目录第4页共46页功能说明插入记录:用于输入个人信息,包括姓名、电话和E-mail。删除记录:用于删除一条选定的记录。修改记录:用于修改个人信息。保存记录:用于将个人信息写入文件。导入:用于将个人信息从文件中导入。退出:退出应用程序。目录退出目录第5页共46页二、案例分析根据案例需求,需要利用MFC环境定义一个对话框类,提供程序的初始界面,其中包括一个列表控件用于显示通讯录的信息,同时还包括【插入记录】单击、【删除记录】单击、【修改记录】按钮、【保存记录】按钮、【导入数据】按钮和【退出】按钮;另外定义了一个用于插入记录和修改记录的对话框,其中包括用于编辑通讯录信息的文本框等控件。案例的核心是列表控件的使用,记录的插入、删除、修改、判断是否为空等功能都直接利用了列表控件本身的方法。案例没有使用数据库进行系统的开发,记录的保存是基于输入/输出流使用文件实现了信息的存储。目录退出目录第6页共46页三、案例设计1.“通讯录”对话框的设计从控件列表框中【选择】按钮控件和列表控件置于对话框上,【修改】按钮控件的属性,其设计结果如图所示。目录退出目录第7页共46页对话框的设计结果目录退出目录第8页共46页在“查看”菜单中选择ClassWizard命令,在打开的对话框中切换到MemberVariable选项卡。选中列表控件的IDC_LIST1,单击【AddVariable】按钮,添加成员变量的名称为m_list,类型为CListCtrl,单击【OK】按钮返回,设计结果如图所示。目录退出目录第9页共46页对话框类成员变量的设计结果目录退出目录第10页共46页在文件视图FileView中单击SourceFiles目录,双击Example5Dlg.cpp选项打开该文件。在文件中找到OnInitDialog()函数,在//TODO:Addextrainitializationhere的提示下,添加以下代码: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”列目录退出目录第11页共46页2.“输入信息”对话框设计添加对话框,双击该对话框,创建一个新类,添加类名为Inputdlg,如图所示。创建输入对话框类1目录退出目录第12页共46页在“查看”菜单中选择ClassWizard命令,在打开的对话框中切换到MemberVariable选项卡。选中列表控件的IDC_EDIT1选项,单击【AddVariable】按钮,添加Membervariablename为m_name,类型为CString,单击【OK】按钮返回,依次处理IDC_EDIT2、IDC_EDIT3,最终设计结果如图所示。目录退出目录第13页共46页输入对话框设计结果目录退出目录第14页共46页在“通讯录”对话框中,双击【插入记录】按钮,弹出对话框,如图所示,保持函数名默认值为OnBUTTONinsert(),单击【OK】按钮进行代码编辑。依此类推,处理其他按钮。添加成员函数目录退出目录第15页共46页(1)【插入记录】按钮的成员函数为:voidCExample5Dlg::OnBUTTONinsert()(2)【删除记录】按钮的成员函数为:voidCExample5Dlg::OnBUTTONdelete()(3)【修改记录】按钮的成员函数为:voidCExample5Dlg::OnBUTTONmodify()(4)【保存记录】按钮的成员函数为:voidCExample5Dlg::OnBUTTONsave()(5)【导入】按钮的成员函数为:voidCExample5Dlg::OnBUTTONload()目录退出目录第16页共46页四、案例实现目录退出目录第17页共46页目录退出目录第18页共46页目录退出目录第19页共46页目录退出目录第20页共46页目录退出目录第21页共46页目录退出目录第22页共46页目录退出目录第23页共46页目录退出目录第24页共46页目录退出目录第25页共46页目录退出目录第26页共46页目录退出目录第27页共46页目录退出目录第28页共46页目录退出目录第29页共46页目录退出目录第30页共46页目录退出目录第31页共46页目录退出目录第32页共46页目录退出目录第33页共46页目录退出目录第34页共46页目录退出目录第35页共46页目录退出目录第36页共46页目录退出目录第37页共46页目录退出目录第38页共46页目录退出目录第39页共46页目录退出目录第40页共46页目录退出目录第41页共46页目录退出目录第42页共46页目录退出目录第43页共46页目录退出目录第44页共46页目录退出目录第45页共46页五、案例总结与提高案例总结本案例重点在于ListView控件的使用,如果读者感觉有难度,那么只要理解【插入记录】按钮和【导入】按钮函数的实现就可以了,要认真体会本案例是如何读入和存储数据的。本案例在输入个人信息时,在Email的EDIT控件中检查了是否有“@”字符的存在。通讯录是以book.txt文件保存在当前目录下的,请读者打开观看,同时也可以直接在book.txt文件中添加人员,并在程序中导入。目录退出目录第46页共46页案例提高修改【退出】按钮,使其具有检查插入内容是否保存的功能,如果没有保存,则进行提示。修改【保存】和【导入】按钮,在单击时调用系统的“保存”和“打开”对话框,可以由用户选择保存和导入路径。
本文标题:MFC制作一个简单的通讯录
链接地址:https://www.777doc.com/doc-5440676 .html