欢迎来到天天文库
浏览记录
ID:13081784
大小:56.50 KB
页数:8页
时间:2018-07-20
《visual c++ mfc设计报告--邮政编码、区号》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VisualC++可视化程序设计报告——邮政编码、区号系别:班级:姓名:学号:8内容目录1.设计内容介绍………………32.设计思路方法、过程…………3-63.设计结果示范…………………64.设计心得体会…………………6-75.附:设计中的关键源程序……7-88一、设计内容介绍城市名与邮政编码、区号一一对应,通过文档编辑栏打开邮政编码、区号对话框。功能:单击“添加”按钮可以将城市名、邮政编码和区号添加到组合框中(在添加前进行重复性判断);选择组合框中的城市名,将在编辑框中显示出邮政编码和区号;单击“修改”按钮
2、,将以城市名作为组合框的查找关键字,找到后修改其邮政编码和区号内容。二、设计思路方法、过程实现本例最关键技巧是如何使组合框中的项关联邮政编码和区号,这里先把邮政编码和区号变成一个字符串,中间用逗号隔开,然后通过SetItemDataPtr来将字符串和组合框中的项相关联。主要过程:1.添加并设计对话框(1)用MFCAppWizard(exe)创建一个默认的单文档应用程序09119gaoziguang。(2)向应用程序中添加一个对话框资源IDD_CITYZONE,标题定为“城市邮政编码和区号”,字体设为“宋体,
3、9号”,创建此对话框类为CCityZoneDlg。(3)删除原来的[Cancel]按钮,将[OK]按钮标题改为“退出”。(4)打开对话框网格,参看图1的控件布局,为对话框添加如表1所示的一些控件。8图1表12.完善CCityZoneDlg类代码(1)打开MFCClassWizard的MemberVariables页面,看看Classname是否是CCityZoneDlg,然后选中所需的控件ID标识符,双击鼠标或单击AddVariables按钮。依次为下列控件增加成员变量。如表2所示。表2(2)8将项目工作区
4、切换到ClassView页面,右击CCityZoneDlg类名,从弹出的快捷菜单中选择“AddMemberFunction”,弹出AddMemberFunction对话框,在FunctionType(函数类型)框中输入BOOL,在FunctionDeclaration(函数声明)框中输入IsValidate,单击[OK]按钮。(3)在CCityZoneDlg::IsValidate函数输入代码实现确认验证信息功能。(4)打开MFCClassWizard,切换到MesssageMaps页面,为按钮IDC_BU
5、TTON_ADD添加BN_CLICKED的消息映射,并添加代码实现增加数据功能。(5)用MFCClassWizard为按钮IDC_BUTTON_CHANGE添加BN_CLICKED的消息映射,并增加代码实现修改数据功能。(6)用MFCClassWizard为组合框IDC_COMBO1添加CBN_SELCHANGE(当前选择项发生改变)的消息映射,并增加代码。(7)用MFCClassWizard为对话框添加WM_DESTROY的消息映射,并增加代码实现关闭对话框框后数据删除及内存的释放。3.调用对话框(1)打
6、开09119gaoziguang单文档应用程序的菜单资源,添加顶层菜单项“测试(&T)”,在其下添加一个菜单项“城市邮政编码和区号(&Z)”,ID为ID_TEST_CITYZONE。8(2)用MFCClassWizard为CMainFrame类添加菜单项ID_TEST_CITYZONE的COMMAND消息映射,取默认的映射函数名,并添加下列代码:voidCMainFrame::OnTestCityzone(){CCityZoneDlgdlg;dlg.DoModal();}(3)在文件MainFrm.cpp的
7、前面添加CCityZoneDlg类的头文件包含:#include"MainFrm.h"#include"CityZoneDlg.h"(4)编译运行并测试。三、设计结果示范三、设计心得体会通过本实例学习了8对话框的使用和常用控件的创建及使用方法,练习了对话框的布局、控件的使用和控件的消息及消息映射,懂得了如何在程序中调用对话框、使用消息对话框。此实例虽是对话框和控件使用的最基本的使用,但一切源于基础,通过类似实例的练习,我们会熟练掌握对话框和控件的使用,从而打下良好的编程基础,为以后的使用提供了经验,对我们的
8、学习意义深刻。四、设计中的关键源程序(1)BOOLCCityZoneDlg::IsValidate(){UpdateData();m_strCity.TrimLeft();if(m_strCity.IsEmpty()){MessageBox("城市名输入无效!");returnFALSE;}m_strZip.TrimLeft();if(m_strZip.IsEmpty()){MessageBox("邮政编码输入无
此文档下载收益归作者所有