Visual C++ MFC设计报告--邮政编码、区号

上传人:cl****1 文档编号:513043485 上传时间:2022-10-09 格式:DOC 页数:8 大小:56.50KB
返回 下载 相关 举报
Visual C++ MFC设计报告--邮政编码、区号_第1页
第1页 / 共8页
Visual C++ MFC设计报告--邮政编码、区号_第2页
第2页 / 共8页
Visual C++ MFC设计报告--邮政编码、区号_第3页
第3页 / 共8页
Visual C++ MFC设计报告--邮政编码、区号_第4页
第4页 / 共8页
Visual C++ MFC设计报告--邮政编码、区号_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《Visual C++ MFC设计报告--邮政编码、区号》由会员分享,可在线阅读,更多相关《Visual C++ MFC设计报告--邮政编码、区号(8页珍藏版)》请在金锄头文库上搜索。

1、Visual C+可视化程序 设计报告 邮政编码、区号系别: 班级: 姓名: 学号: 内容目录1.设计内容介绍 32.设计思路方法、过程 3-63.设计结果示范 64.设计心得体会 6-75.附:设计中的关键源程序 7-8一、设计内容介绍 城市名与邮政编码、区号一一对应,通过文档编辑栏打开邮政编码、区号对话框。功能:单击“添加”按钮可以将城市名、邮政编码和区号添加到组合框中(在添加前进行重复性判断);选择组合框中的城市名,将在编辑框中显示出邮政编码和区号;单击“修改”按钮,将以城市名作为组合框的查找关键字,找到后修改其邮政编码和区号内容。二、设计思路方法、过程实现本例最关键技巧是如何使组合框中

2、的项关联邮政编码和区号,这里先把邮政编码和区号变成一个字符串,中间用逗号隔开,然后通过SetItemDataPtr来将字符串和组合框中的项相关联。主要过程:1. 添加并设计对话框(1) 用MFC AppWizard(exe)创建一个默认的单文档应用程序09119gaoziguang。(2) 向应用程序中添加一个对话框资源IDD_CITYZONE,标题定为“城市邮政编码和区号”,字体设为“宋体,9号”,创建此对话框类为CCityZoneDlg。(3) 删除原来的Cancel按钮,将OK按钮标题改为“退出”。(4) 打开对话框网格,参看图1的控件布局,为对话框添加如表1所示的一些控件。图1表12.

3、 完善CCityZoneDlg类代码(1) 打开MFC ClassWizard的Member Variables页面,看看Class name是否是CCityZoneDlg,然后选中所需的控件ID标识符,双击鼠标或单击Add Variables按钮。依次为下列控件增加成员变量。如表2所示。表2(2) 将项目工作区切换到ClassView页面,右击CCityZoneDlg类名,从弹出的快捷菜单中选择“Add Member Function”,弹出Add Member Function对话框,在Function Type(函数类型)框中输入BOOL,在Function Declaration(函数

4、声明)框中输入IsValidate,单击OK按钮。(3) 在CCityZoneDlg:IsValidate函数输入代码实现确认验证信息功能。(4) 打开MFC ClassWizard,切换到Messsage Maps页面,为按钮IDC_BUTTON_ADD添加BN_CLICKED的消息映射,并添加代码实现增加数据功能。(5) 用MFC ClassWizard为按钮IDC_BUTTON_CHANGE添加BN_CLICKED的消息映射,并增加代码实现修改数据功能。(6) 用MFC ClassWizard为组合框IDC_COMBO1添加CBN_SELCHANGE(当前选择项发生改变)的消息映射,并增

5、加代码。(7) 用MFC ClassWizard为对话框添加WM_DESTROY的消息映射,并增加代码实现关闭对话框框后数据删除及内存的释放。3. 调用对话框(1) 打开09119gaoziguang单文档应用程序的菜单资源,添加顶层菜单项“测试(&T)”,在其下添加一个菜单项“城市邮政编码和区号(&Z)”,ID为ID_TEST_CITYZONE。(2) 用MFC ClassWizard为CMainFrame类添加菜单项ID_TEST_CITYZONE的COMMAND消息映射,取默认的映射函数名,并添加下列代码:void CMainFrame:OnTestCityzone() CCityZon

6、eDlg dlg; dlg.DoModal();(3) 在文件MainFrm.cpp的前面添加CCityZoneDlg类的头文件包含:#include MainFrm.h#include CityZoneDlg.h(4) 编译运行并测试。三、设计结果示范三、设计心得体会通过本实例学习了对话框的使用和常用控件的创建及使用方法,练习了对话框的布局、控件的使用和控件的消息及消息映射,懂得了如何在程序中调用对话框、使用消息对话框。此实例虽是对话框和控件使用的最基本的使用,但一切源于基础,通过类似实例的练习,我们会熟练掌握对话框和控件的使用,从而打下良好的编程基础,为以后的使用提供了经验,对我们的学习意

7、义深刻。四、设计中的关键源程序(1) BOOL CCityZoneDlg:IsValidate() UpdateData();m_strCity.TrimLeft();if (m_strCity.IsEmpty()MessageBox(城市名输入无效!); return FALSE;m_strZip.TrimLeft();if (m_strZip.IsEmpty() MessageBox(邮政编码输入无效!);return FALSE;m_strZone.TrimLeft();if (m_strZone.IsEmpty() MessageBox(区号输入无效!);return FALSE;re

8、turn TRUE;(2) void CCityZoneDlg:OnButtonAdd() if (!IsValidate() return;int nIndex = m_ComboBox.FindStringExact( -1, m_strCity );if (nIndex != CB_ERR ) MessageBox(该城市已添加!);return;CString strData;strData.Format(“%s,%s”, m_strZip, m_strZone);/ 将邮政编码和区号合并为一个字符串m_ComboBox.SetItemDataPtr(nIndex,newCString

9、(strData) ;(3) void CCityZoneDlg:OnButtonChange() if (!IsValidate() return;int nIndex = m_ComboBox.FindStringExact( -1, m_strCity );if (nIndex != CB_ERR ) delete (CString*)m_ComboBox.GetItemDataPtr( nIndex );CString strData;strData.Format(%s,%s, m_strZip, m_strZone);m_ComboBox.SetItemDataPtr(nIndex,

10、newCString(strData) );(4) void CCityZoneDlg:OnSelchangeCombo1() int nIndex = m_ComboBox.GetCurSel();if (nIndex != CB_ERR ) m_ComboBox.GetLBText( nIndex, m_strCity ); CString strData=*(CString*)m_ComboBox.GetItemDataPtr( nIndex );/ 分解字符串int n = strData.Find(,);m_strZip = strData.Left( n );/ 前面的n个字符m_strZone = strData.Mid( n+1 );/ 从中间第n+1字符到未尾的字符串UpdateData( FALSE );(5) void CCityZoneDlg:OnDestroy()/ 此消息是当对话框关闭时发送的for (int nIndex = m_ComboBox.GetCount()-1; nIndex=0; nIndex-) / 删除所有与列表项相关联的CString数据,并释放内存 delete (CString *)m_ComboBox.GetItemDataPtr(nIndex);CDialog:OnDestroy();1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号