版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验七 常用控件应用【实验目的】(1) 学习和掌握基本控件及其使用方法(2) 学习各种基本控件和相关函数的建立与调用【实验要求】(1) 必须做好实验原理的预习。(2) 需要对提供的程序代码进行分析,并明确实验中各个环节的意义。【实验环境】设计一个如图1所示的用户调查表图,并使用一个静态文本控件用来显示该用户的所有信息,本例子主要用来说明对话框和控件的使用。Microsoft Windows XP Microsoft Visual C+ 6.0图1 用户调查表【实验步骤】1创建工程1) 步骤1:在VC+集成开发环境中,通过菜单File->New,弹出New对话框;2) 步骤2:在Proje
2、cts标签中选择MFC App Wizard(exe),在Project name中输入“Eg_1”,Location读者可以自己选择;3) 步骤3:按下OK按钮,在弹出的MFC App Wizard Step-1对话框中选择程序框架为单文档框架,即选中Single Document;4) 步骤4:按下OK按钮,在弹出的New Project Information对话框中按下OK按钮后等待创建完相应的工程。2. 创建对话框资源1) 在工作区中选中Resourse View标签展开Eg_1Resourse->Dialog条目,可以察看当前工程中的对话框资源;2) 选择Dialog条目,单
3、击鼠标右键,弹出活动菜单,选择菜单Insert Dialog命令;3) 将鼠标移动到对话框资源上,单击鼠标右键,在弹出的菜单中选择Properties菜单命令,将对话框的标题设置为“用户调查表”标识号不变。4) 删除对话框资源本来就有的静态控件,利用鼠标将按钮OK和CANCEL移动到对话框的底部,将按钮的标题分别改为确定,取消。5) 在工具栏中的静态控件上单击一下鼠标左键,然后在对话框资源中按下鼠标左键拖动,出现一个矩形框,松开鼠标左键,则在对话框资源中出现一个静态控件,将该静态控件的标题改为“姓名”其标识号改为IDC_STATIC_NAME。按照上面的方法在对话框资源上加入其它的控件,它们的
4、类型、标题和标识号如下表1:表1 对话框资源中各控件属性3. 生成对话框类资源创建完毕以后,还需要创建一个与对话框资源相关联的类,这个类需要从对话框类派生,然后定义一个派生类的对象,通过派生类的对象使对话框的功能得以实现。生成对话框类的操作步骤:1) 在对话框资源上单击右键,在弹出的菜单中选择Class Wizard,在MFC Class Wizard对话框弹出以后紧接着弹出Adding Class。在打开对话框的过程中,如果系统监测到有新建的对话框资源,菜单资源等,并且该资源没有与之相关联的类,就会弹出对话框,询问是否创建新的类 。2) 在Adding Class对话框中确认默认选择Crea
5、te a new class,单击按钮弹出New Class对话框,在编辑框中输入新建类的名称CEg_1Dialog,其他设置取默认值。3) 单击OK按钮后显示出MFC Class Wizard对话框 。4. 为控件建立相关联的成员变量4) 在MFC Class Wizard对话框中默认的Projects和 Class name项为Eg_1和CEg_1Dialog。5) 选中Member Variables标签中的Control Ids项中的IDC_EDIT_NAME条目,单击Add Variables按钮,将弹出Add Variables对话框。6) 在Add Variables对话框中添加
6、成员变量m_Name,与编辑控件IDC_EDIT_NAME相关联,类型为CString ,catogory为Value。7) 单击OK按钮,添加变量完成。Add Variables对话框,如图2 :图2 Add Variables对话框按照上述方法为其它控件添加相关联的变量,如表2所示:表2 控件与其相关联的变量对应表5. 成员变量的初始化成员变量的初始化需要重载对话框类的OnInitDialog()函数。OnInitDialog是一个虚函数,它在对话框显示之前被调用,用户可以通过重载该函数对对话框中的各种控件进行初始化。操作如下:打开MFC Class Wizard,选中标签Member M
7、ap标签中的Control IDs项中的IDC_COMBO1条目,在Messages里面选择WM_INITDIALOG,单击Add Function按钮,然后单击Edit Code按钮,进入源程序,编辑OnInitDialog()函数。增加以后的代码如下:BOOL CInvest:OnInitDialog()CDialog:OnInitDialog();/ TODO: Add extra initialization herem_Province.AddString("湖南");m_Province.AddString("河南");return TRUE
8、; / return TRUE unless you set the focus to a control6. 建立消息映射与响应函数需要在用户选择了省份以后更新有关城市的信息,这就需要在组合框中增加消息响应函数,功能是当用户打开第二个组合框的下拉式列表框的时候及时更新相关省份的城市信息。操作步骤:打开MFC Class Wizard,选中标签Member Map标签中的Control IDs项中的IDC_COMBO2条目,在Messages里面选择CBN_DROPDOWN,单击“Add Function”按钮,接受系统默认的函数名,然后单击“Edit Code”按钮,进入源程序,编辑函数如下
9、:响应函数void CEg7_1Dlg:OnDropdownCombo2()/ TODO: Add your control notification handler code hereCString m_1;m_Province.GetWindowText(m_1);if(m_1="河南")m_City.ResetContent();m_City.AddString("郑州");m_City.AddString("洛阳");if(m_1="湖南")m_City.ResetContent();m_City.AddS
10、tring("长沙");m_City.AddString("岳阳");7. 函数建立与调用在Workspace工作区打开Class View,选中要加入函数的类CEg_1Dlg,点击鼠标右键,在弹出的对话框中选择“Add Member Function” 。在Function Type(函数类型)中填入CString,表示函数类型是字符串对象;在Function Declaration(函数声明)中填入GetRadio。该函数用来获得单选按钮的信息。然后在CEg_1Dlg.cpp文件中找到该函数,添加函数代码如下:CString CEg_1Dlg:Get
11、Radio()CString Radiotext;UINT m_6=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2);if(m_6=IDC_RADIO1)Radiotext="男"elsereturn(Radiotext);说明:CWnd的成员函数:GetCheckedRadioButton()返回指定组中的第一个所选中的单选钮的ID,如果没有按钮选中则返回0。该成员函数的原型: Radiotext="女"int GetCheckedRadioButton(int nIDFirstButton, int nIDLa
12、stButton);其中,第一个参数是nIDFirstButton同一组中的第一个单选按钮的ID, nIDLastButton是同一组中最后一个单选按钮的ID。建立第二个成员函数:1) 同样为CEg_1Dlg类加入另一个成员函数GetCheck()以获得复选框的信息。在Function Type(函数类型)中填入CString,表示函数类型是字符串对象;在Function Declaration(函数声明)中填入GetCheck。2) 在CEg_1Dlg.cpp文件中找到该函数,添加函数代码如下:函数代码:CString CEg_1Dlg:GetCheck()int m=0;CString s
13、tr,Checktext;for(int i=IDC_CHECK1; i<IDC_CHECK6+1; i+)m=(CButton*)GetDlgItem(i)->GetCheck();if (m=1)CWnd:GetDlgItemText(i,str);str+=""Checktext+=str;return(Checktext);重载OnOK()函数:该例将在OnOK()函数中调用这两个成员函数。打开对话框资源,双击“确定”按钮,接受系统默认的函数名,重载OnOK()函数:void CMy21Dlg:OnOK()/ TODO: Add extra valida
14、tion hereCString m_1,m_2,m_3,str;m_3=GetRadio(); /调用成员函数以得到单选按钮的信息str=GetCheck(); /调用成员函数以得到复选框中的信息8. 重载其他函数重载以后的OnOK()函数源代码如下:void CMy21Dlg:OnOK()/ TODO: Add extra validation hereUpdateData(TRUE); / 将对话框控件中的内容传给其成员变量 CString m_1,m_2,m_3,str;m_3=GetRadio();str=GetCheck();m_Province.GetWindowText(m_1
15、);m_City.GetWindowText(m_2);SetDlgItemText(IDC_STATIC_NAME," ");SetDlgItemText(IDC_STATIC_EMAIL," ");SetDlgItemText(IDC_STATIC_EDIT," ");SetDlgItemText(IDC_STATIC_SEX," ");SetDlgItemText(IDC_STATIC_HOBBY," ");SetDlgItemText(IDC_STATIC_PROVINCE,"
16、 ");SetDlgItemText(IDC_STATIC_CITY," ");m_Display.SetWindowText(m_Name+","+m_3+","+m_1+m_2+"人也。n有:" +str+"n"+"您的地址:"+m_Email+"n"+"您要说的话:"+m_Edit);m_Display.ShowWindow(TRUE);m_City.ShowWindow(FALSE);m_Province.ShowWi
17、ndow(FALSE);(CEdit*)GetDlgItem(IDC_EDIT_NAME)->ShowWindow(FALSE); (CEdit*)GetDlgItem(IDC_EDIT_EMAIL)->ShowWindow(FALSE); (CEdit*)GetDlgItem(IDC_EDIT_EDIT)->ShowWindow(FALSE); GetDlgItem(IDC_STATIC1)->ShowWindow(FALSE); 您的兴趣GetDlgItem(IDC_STATIC2)->ShowWindow(FALSE);(CButton*)GetDlgItem(IDC_RADIO1)->ShowWindow(FALSE); (CBu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025济钢集团有限公司社会招聘(7人)笔试参考题库附带答案详解(3卷合一版)
- 2025年甘肃兰州新区市政投资管理集团有限公司招聘应届毕业生44人笔试参考题库附带答案详解(3卷)
- 2025年安徽省中安联合招聘73人笔试参考题库附带答案详解(3卷)
- 重庆市2024重庆医科大考核招聘紧缺高层次人才50人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 环保科技公司研发部门主管面试题库
- 乐昌市2024广东韶关乐昌市“汇聚英才筑梦未来”校园招聘151人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 娱乐业行政管理类员工面试题与答案
- 美食节目主播应聘面试题
- 2025年儿童编程教育五年发展趋势报告
- 数据分析师职位面试常见问题集
- 医保政策学习课件
- 雨课堂学堂在线学堂云《科学研究方法与论文写作(复大)》单元测试考核答案
- 2025浙江省自由贸易发展中心招聘工作人员5人(第二批)参考笔试试题及答案解析
- 【2025年】天翼云解决方案架构师认证考试笔试卷库下(多选、判断题)含答案
- 高中语文 选修中册 第四课时 展示强大思想力量 逻辑思维在著作中提升-《改造我们的学习》《人的正确思想是从哪里来的》
- 大学化学试题库
- GCB发电机出口断路器教育课件
- 柑桔周年管理工作历第二版课件
- 半导体异质结课件
- Q∕SY 1356-2010 风险评估规范
- 高处作业吊篮安装验收表(范本模板)
评论
0/150
提交评论