第5讲-列表控件.doc
《第5讲-列表控件.doc》由会员分享,可在线阅读,更多相关《第5讲-列表控件.doc(12页珍藏版)》请在咨信网上搜索。
1、第五讲 列表控件 本讲主要介绍组合框(Combo Box)控件和列表框(List Box)控件的的使 用方法.一创建一个基于对话框的应用程序模板 1选择应用程序类型: 选择“FileNew”菜单 在弹出的“New”对话框的选择“Projects” 选项卡 应用程序类型选择“MFC AppWizard(exe) “Project name”编辑框中输入“ListBox” “Location编辑框中输入适当的 路径 单击“OK” 2选择项目类型 在“MFC AppWizar Step 1”对话框中“Dialog based”单选钮 单击“Finish”按钮。二修改对话框模板 把主对话框模板修改成如
2、下图所示: 图6-1 1增加“编号”、“姓名”、“出生年月”、“性别、“职称”和“职工情况列表” 等六个静态文本 2在“编号右侧增加一个下沉风格的静态文本,资源符号为:IDC_NUMBER 在“Styles”选项卡的“Center-vertically复选钮: 选中 3在“姓名和“出生年月”右侧,增加二个编辑框,资源符号分别为: IDC_NAME, IDC_BIRTHDAY 4在“性别”和“职称”右侧,增加二个组合框,资源符号分别命名为: IDC_SEX 在Combo Box Properties对话框的styles选项卡的 type下拉列表框中选择Drop List 注: Drop List
3、选项不允许组合框编辑输入 IDC_TITLE 在Combo Box Properties对话框的styles选项卡的 type下拉列表框中选择Drop List 注: Dropdown选项允许组合框编辑输入 5增加“添加、“删除当前选定行”和“在选定行前插入”三个按钮,ID值命 名为: IDC_ADD, IDC_DELETE, IDC_INSERT 6在“职工情况列表”的下方,增加一个列表控件”List Control: 在”List Control Properties”对话框中如下设置: A在General选项卡的ID组合框中输入: IDC_LIST B在Styles选项卡中选择: “Vi
4、ew:”下拉列表框: Report “Align:”下拉列表框: Top “Sort:”下拉列表框: Ascending “Single selection”复选框: 选中三为控件连接变量 为各控件连接的变量名及其值类型和变量类型如下(连接方法前已述): 控件ID 变量名 变量类别 变量类型 IDC_NUMBER m_nNumber value CString IDC_NAME m_sName value CString IDC_BIRTHDAY m_sBirthday value CString IDC_SEX m_nSex valve int m_cSex Control CComboBo
5、x IDC_TITLE m_sTitle value CString m_cTitle Control CComboBox IDC_LIST m_cList Control CListBox 注:IDC_TITLE组合框控件上各连连接了两个变量,它们值类型分别为value 和Control,连接方法是对同一个控件ID,两次使用“Add Variables” 即可.四组合框控件的初始化 1在CListBoxDlg类中添加二个成员变量: 变量类型 变量名 作用域 CString strTitle public CString m_sSex public 2在CListBoxDlg类的构造函数中对变
6、量strTitle初始化: strTitle=”助教/讲师/副教授/教授/”; 3在CListBoxDlg类中添加一个函数: 函数类型:void 函数名:InitCombo() 作用域:Protected 4编写函数InitCombo()成: void CListBoxDlg::InitCombo() int i,n; CString s12 = ”男,”女; for(i=0;i2;i+) m_cSex.AddString(s1i); CString s,s2=strTitle; while(s2 != ”) n=s2.Find(/,0); s=s2.Left(n); m_cTitle。Add
7、String(s); s2。Delete(0,n+1); 3在CListBoxDlg类的OnInitDialog()函数中添加一条语句: / TODO: Add extra initialization here InitCombo(); 4编译并运行程序,观察程序的运行情况五组合框内容的获取 经过下拉列表的选择或编辑输入后,组合框中具有了内容,要获取这些 内容可如下操作: 1为组合框控件IDC_SEX增加一个CBN_SELCHANGE消息响应函数 OnSelchangeSex()如下: 1)选择“ViewClassWizard”菜单项 2)在弹出的MFC Classwizard对话框中如下操
8、作: A选择Message Maps选项卡 B在Class name下拉列表框中选择CListBoxDlg类 C在Object IDs列表框中选择:IDC_SEX D在Messages列表框中选择CBN_SELCHANGE E单击Add Function按钮,在弹出的Add member function对话框中 单击OK按钮 F再单击MFC Classwizard对话框的“Edit code”按钮,进入函数编 辑 3)编写OnSelchangeSex()如下: void CListBoxDlg::OnSelchangeSex() / TODO: Add your control notifi
9、cation handler code here UpdateData(); int n=m_cSex。GetCurSel(); if(n!=CB_ERR) m_cSex。GetLBText(n,m_sSex); 2为组合框控件IDC_TITLE增加一个CBN_SELCHANGE消息响应函数 OnSelchangeTitle(),方法同上,函数程序如下: void CListBoxDlg:OnSelchangeTitle() / TODO: Add your control notification handler code here UpdateData(); int n=m_cTitle。
10、GetCurSel(); if(n!=CB_ERR) m_cTitle.GetLBText(n,m_sTitle); 3为按钮控件IDC_ADD添加一个BN_CLICKED消息响应函数OnAdd()如下: void CListBoxDlg::OnAdd() / TODO: Add your control notification handler code here CString str=性别:+m_sSex+nn职称:+m_sTitle; MessageBox(str); 4编译并运动程序,观察程序的运行情况。 由程序的运行情况可见:通过下拉列表选择的内容能正确地获取,但在 IDC_TIT
11、LE控件中通过编辑输入的数据无法正确地获取.为解决这一问 题并使编辑输入的内容能增添到下拉列表中,可如下操作: A仿上,为控件IDC_TITLE增添一条CBN_KILLFOCUS消息响应函数: OnKillfocusTitle() B编写函数体如下: void CListBoxDlg::OnKillfocusTitle() / TODO: Add your control notification handler code here /获取编辑输入的内容 UpdateData(); int n=m_cTitle。GetCurSel(); if(n!=CB_ERR) m_cTitle。GetLB
12、Text(n,m_sTitle); /把编辑输入的内容增添到下拉列表中 if(m_sTitle!=” & strTitle。Find(m_sTitle,0)EnableWindow(false); GetDlgItem(IDC_INSERT)-EnableWindow(false); UpdateData(false); 注:句:给编号赋初值 :由于刚开始时列表控件中尚无任何内容,故不能“删除”或 “插入 句:回显数据. C修改OnAdd()函数成: void CListBoxDlg:OnAdd() / TODO: Add your control notification handler c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 列表 控件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。