




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows编程基础 东软人才实训中心Copyright2010ByNeusoftGroup Allrightsreserved 本课程旨在向学员介绍 1 掌握编辑框和普通按钮的使用2 掌握单选按钮和复选框的使用3 掌握列表框和组合框等控件的使用 时间 学时9教学方法 讲授 课上练习 课下作业 第二章Windows常用控件的使用 控件 1 2 关于控件 对话框和控件是密不可分的 控件类从CWnd类派生过来的 所以他们实际上也是窗口 所以我们可以动态的创建他们 应该说掌握了这些控件 就可以解决大部分界面设计的要求了控件担负着与用户交互的责任 比如按下按钮 显示图片等 按键的外观是由其属性决定的 在编辑对话框时 我们可以对某一个控件属性进行修改 控件 2 2 控件的创建 控件的创建分为静态创建和动态创建两种方式静态创建 在对话框模板中创建控件动态创建 程序的运行中定义一个控件类对象 再通过Create函数进行创建 控件的访问 访问控件一般有3种方法 利用对话框的数据交换功能访问控件适用于静态创建的控件 通过调用UpdateData 函数 实现对话框和控件的数据交换 通过控件对象来访问控件利用CWnd类的成员函数来访问控件 关于General属性 ID 程序通过控件ID来访问一个控件 所有的控件中 只有StaticBox控件和GroupBox控件的ID是可以重复 一般使用默认设置IDC STATIC 而其他类控件的ID在一个应用程序中应该是惟一的 控件可见性 标识一组中第一个控件 分配帮助ID给控件 静态控件用来显示文本串或图形信息的控件 包括下列两种控件静态文本控件 不要求与对话框交互 需要显示的内容在Caption中给出 注意属性 图片控件 用来显示边框 矩形或位图等图形 注意 所有静态控件默认的ID标识都为IDC STATIC 如果需要在程序中区分和操纵各个不同的静态控件 必须重新为它指定一个惟一的ID标识 静态文本控件 静态文本控件显示风格 Aligntext 控制静态文本控件的对齐方式Centervertically 设置垂直方向居中显示Noprefix 作为文本内容的一部分Simple 禁止Nowrap和AligntextNotify 控件被选中时 有相应消息发给父窗口Sunken 使静态文本框凹陷显示Border 使静态文本框带边框 图片控件显示风格 用来显示边框 矩形 或位图等图形 编辑时 首先必须创建位图或图标资源 即要插入一个Bitmap 位图 或Icon 图标 图片类型 可以选择Frame 框 Rectangle 矩形区域 Icon 图标 Bitmap 位图 EnhancedMetafile 增强图元文件 设置Frame和Rectangle的颜色 Icon类型和BitMap设置ID值 CStatic类控件的动态创建 1 2 可以通过Create函数来动态的创建文本框成员函数CreateBOOLCreate LPCTSTRlpszText DWORDdwStyle constRECTlpszText 指定控件显示正文dwStyle 静态正文控件的风格 如WS VISIBLE WS DISABLED rect为控件的引用 指定位置和尺寸 pParentWnd 指向父窗口 不能为NULLnID 控件ID CStatic类控件的动态创建 2 2 CStaticm MyStatic 定义成员变量m MyStatic Create T mystatic WS CHILD WS VISIBLE SS CENTER CRect 10 10 150 50 this 创建CStatic对象 CStatic类常用的成员函数 SetBitmap 设置要在静态控件上显示的位图 SetIcon 设置要在静态控件上显示的图标 SetCursor 设置要在静态控件上显示的光标 SetEnhMetaFile 设置要在静态控件上显示的元文件 控件 编辑框 编辑框控件可以接受用户的输入和文本编辑 在编辑框中 用户可以输入文字 数字 并能用剪切 粘贴 拷贝 删除等操作来编辑用户的输入 编辑框既可以是单行的 也可以是多行的当该控件获得焦点时 在其编辑框的内部会出现一个闪烁的光标 编辑框控件只能接受纯文本形式的输入 编辑框的风格 1 2 AlignText 控件对齐方式Multiline 多行显示 通常不使用Number 限定只输入数字Horizontalscroll 多行下有效 提供水平滚动条AutoHScroll 当在编辑框最右端输入字符时 提供滚动支持 编辑框的风格 2 2 Verticalscroll 多行编辑下提供垂直滚动条AutoVScroll 当到最下一行时如果按回车提供垂直滚动显示功能Password 不显示输入字符 显示的是 Nohideselection 使编辑框文本保持选择状态显示OEMconvert 从Windows字符集转换到OEM字符集WantReturn Enter键换行 CEdit类对象的动态创建 1 3 对应的控件类是CEdit成员函数CreateBOOLCreate DWORDdwStyle constRECTdwStyle 控件的风格 如WS CHILD WS DISABLED rect为控件的引用 指定位置和尺寸 pParentWnd 指向父窗口 不能为NULLnID 控件ID CEdit类对象的动态创建 2 3 CEdit pEdit newCEdit pEdit Create ES MULTILINE WS CHILD WS VISIBLE WS TABSTOP WS BORDER CRect 10 10 100 100 this 1 创建CEdit对象 CEdit类常用的成员函数 GetSel 获得编辑框控件中当前选择的其始字符和终止字符的位置 SetSel 选择编辑框控件中的一个字符范围 GetLineCount 获得多行编辑框的行数 CEdit类对象的动态创建 3 3 CEdit类常用的成员函数 续 CanUndo 决定一个编辑框操作是可以撤销GetPasswordChar 获得编辑框中的密码字符 SetReadOnly 将编辑框中的控件设置为只读状态 编辑框的消息 EN CHANGE 当编辑框中的文本已被修改 在新的文本显示之后发送 EN HSCROLL 当编辑框的水平滚动条被使用 在更新显示之前发送 EN KILLFOCUS 当编辑框失去焦点时发送 EN MAXTEXT 文本数目到达限定值时发送 EN UPDATE 编辑框中的文本已被修改 在新文本显示之前发送 EN VSCROLL 当编辑框的垂直滚动条被使用 在更新显示之前发送 CButton类型的控件 按钮控件用于响应用户的鼠标事件 按钮包括命令按钮 Pushbutton 检查框 CheckBox 单选按钮 RadioButton 组框 GroupBox 和自绘式按钮 Owner drawButton 用于在一组互相排斥的选项中选择其中一项 用于在一组选项中选择其中一项或多项 按钮风格设计 DefaultButton 会在按钮的周围显示黑框 当启动对话框缺省执行的功能Ownerdraw 自己绘制按钮是需要调用CWnd OnDrawItem 需要使用这个选项 关于单选按钮使用 单选按钮由一个圆圈和紧随其后的文本标题组成 当它被选中时 圆圈中就标上一个黑点 通常将一组单选按钮放在一个组框控件中 在一组单选按钮中 第一个 Tab键顺序 按钮最重要 其ID值可用于在对话框中为控件建立关联的成员变量 必须为同组中的第一个单选按钮设置Group属性 而同组的其他单选按钮不可再设置Group属性 关于复选按钮和组框使用 复选按钮 由一个空心方框和紧随其后的文本组成 当它被选中时 空心方框中就加上一个 或 标记 不同于单选按钮 在一组复选框中每次可以同时选择多项 组框 用来显示一个文本标题和一个矩形边框 通常用来作为一组控件周围的虚拟边界 并将一组控件组织在一起 CButton类对象的动态创建 1 3 1 成员函数CreateBOOLCreate LPCTSTRlpszCaption DWORDdwStyle constRECTlpszCaption 按钮正文dwStyle 了控件的风格 如WS CHILD WS DISABLED rect为控件的引用 指定位置和尺寸 pParentWnd 指向父窗口 不能为NULLnID 控件ID CButton类对象的动态创建 2 3 CButtonm MyButton1 m MyButton2 m MyButton3 创建一个普通命令按钮m MyButton1 Create T Mybutton WS CHILD WS VISIBLE BS PUSHBUTTON CRect 10 10 100 30 this 1 创建一个单选按钮m MyButton2 Create T Mybutton WS CHILD WS VISIBLE BS RADIOBUTTON CRect 10 40 100 70 this 2 创建一个复选框m MyButton3 Create T Mybutton WS CHILD WS VISIBLE BS AUTOCHECKBOX CRect 10 100 100 130 this 4 创建CButton对象 CButton类对象的动态创建 3 3 GetState 获得按钮控件的状态 SetState 设置按钮控件的状态 SetCheck GetCheck 设置 获得按钮控件的选择状态 SetButtonStyle GetButtonStyle 设置 获得按钮控件的风格 SetBitmap GetBitmap 设置 获得与控件相关联的位图 综合练习 1 2 假定有苹果 梨 桃子三种水果 只能从中选择一种 并在点 查看结果 后能在编辑框中看到选择的结果 假定有苹果 梨 桃子三种水果 只能从中选择一种 同时能在编辑框中看到选择的结果 综合练习 2 2 结合学员的情况及课时安排考虑给大家扩展讲解按钮相关功能 在嵌入式项目中有实际应用MFC的内容 为了仿真外部环境 做一个仿真界面 界面中设置灯开关 热水器开关状态等 然后在我们的界面进行显示 练习 完成如下功能的应用程序 列表框控件 按性质来划分 列表框风格有单选 多选 扩展多选以及非选等四种类型 Selection 设置列表框的选中方式 单选 多选 有条件选择和不运行选择 Sort 设置列表框有排序功能 CListBox控件动态创建 1 3 动态创建成员函数CreateBOOLCreate DWORDdwStyle constRECTdwStyle 了控件的风格 如WS CHILD WS DISABLED rect为控件的引用 指定位置和尺寸 pParentWnd 指向父窗口 不能为NULLnID 控件ID CListBox控件动态创建 2 3 CListBox pmyListBox pmyListBox Create WS CHILD WS VISIBLE LBS STANDARD WS HSCROLL CRect 10 10 200 200 this 1 创建CListBox对象 CListBox类常用的成员函数 AddString 向列表框中增加一个字符串条目 增加的位置在最后 InsertString 根据参数所给的位置 在列表框中插入一个字符串条目 ResetContent 删除列表框中所有的条目 Deletestring 从列表框中删除一个条目 CListBox控件动态创建 3 3 GetCount 获得列表框中条目的个数 SetItemData GetItemData 设置 获得与一个条目相关联的32位整数值 GetSel 判断一个条目是否被选中 SetCurSel 在单选列表框中选中一个条目 GetCurSel 获得一个被选中条目的条目索引 GetSelCount 在一个多选列表框中得到当前被选中的条目条数 列表框相关消息 LBN DBLCLK 当双击某列表框时发送LBN ERRSPACE 因为内存不足时 操作无法执行是发送LBN KILLFOCUS 当列表框失去输入焦点时发送LBN SELCANCEL 当取消某个选择时发送LBN SELCHANGE 当列表框选择状态改变时发送LBN SETFOCUS 当列表框得到输入焦点是发送 组合框 组合框把一个编辑框和一个单选择列表框结合在了一起 用户既可以在编辑框中输入 也可以从列表框中选择一个列表项来完成输入按风格特征 可把组合框分为3类 简单组合框 下拉式组合框和下拉式列表框 组合框特有内容 组合框大部分属性与编辑框或列表框相关的属性有相同的意义 但它有一个新的功能属性 即可以通过组合框控件属性对话框的Data选项卡添加初始的列表项 注意 每输入完一个列表项 按下Ctrl Enter键后才能换行输入下一项 组合框的动态创建 1 2 动态创建成员函数CreateBOOLCreate DWORDdwStyle constRECTdwStyle 了控件的风格 如WS CHILD WS DISABLED rect为控件的引用 指定位置和尺寸 pParentWnd 指向父窗口 不能为NULLnID 控件ID 组合框的动态创建 2 2 CComboBox pmyComboBox pmyComboBox Create WS CHILD WS VISIBLE WS VSCROLL CBS DROPDOWNLIST CRect 10 10 200 100 this 1 创建CComboBox对象 CComboBox类常用的成员函数 AddString 在组合框列表框的尾部添加一个字符条目 InsertString 根据参数提供的位置 从组合框列表框中插入一个字符条目 组合框的成员函数 CComboBox类常用的成员函数 续 ResetContent 删除组合框列表框中所有的条目 DeleteString 从组合框列表框中删除一个字符条目 GetCount 获得组合框的列表框中条目的数目 SetCurSel 在组合框列表框中选中一个条目 GetCurSel 获得被选中的条目的索引 SetEditSel 设置组合框编辑控件中的字符 GetEditSel 获得组合框编辑控件中当前选择的首尾字符位置 组合框相关消息 CBN CLOSEUP 当组合框列表关闭时发送此消息CBN DBLCLK 双击某字符串时发送此消息CBN DROPDOWN 组合框列表打开是发送此消息CBN EDITCHANG 同EN CHANGECBN EDITUPDATE 同EN UPDATECBN SELENDCANCEL 当前选项被取消时发送此消息CBN SELENDOK 当用户选择一项并按ENTER发送此消息CBN SELCHANGE 当组合框选项要改变时发送此消息CBN SETFOCUS CBN KILLFOCUS 滑动条控件 滑动条控件是由滑动块和可选的刻度线组成的 当用户用鼠标或方向键移动滑动块时 该控件发送通知消息来表明这些改变 滑动条按照应用程序中指定的增量移动 滑动条风格 Orientation 控件放置方向 TickMark 在滑动条上显示刻度线EnableSelection 供用户选择的数值范围高亮显示Point 刻度线位置AutoTick 每个增量位置有刻度线 滑动条基本操作 CSliderCtrl滑动条相关函数SetPos 设置滑动条位置SetRange 设置滑动条的范围GetPos 获取滑动条位置GetRange 获取滑动条范围SetTic 设置滑动条的刻度线位置SetTicFreq 设置滑动条刻度线疏密程度SetSelection 设置选择范围 相关消息 WM HSCROLLWM VSCROLL 实例练习 编写一个基于对话框的MFC应用程序 程序运行时 用画刷填充一块矩形区域 区域颜色及亮度分别由组框中的复选按钮及单选按钮确定 滚动条控件 滚动条是由滚动滑块和条形区域组成的 可以分为水平滚动条和垂直滚动条MFC的CScrollBar类封装了滚动控件 该类的Create成员函数负责创建滚动条控件 成员函数CreateBOOLCreate DWORDdwStyle constRECTdwStyle 了控件的风格 如WS CHILD WS DISABLED rect为控件的引用 指定位置和尺寸 pParentWnd 指向父窗口 不能为NULLnID 控件ID 滚动条的动态创建 CscrollBarm ScrollBarm ScrollBar Create SBS HORZ SBS TOPALIGN WS CHILD WS VISIBLE CRect 5 5 100 30 this 100 创建CScrollBar对象 CScrollBar类常用的成员函数 SetScrollRange GetScrollRange 设置 获得滚动条的最大位置和最小位置 即范围 SetScrollPos GetScrollPos 设置 获得滚动条的当前的位置 滚动条控件练习 完成两个整数加法运行 数字的设计可以通过滚动条来实现 进度条控件 进度条 ProgressBar 是一个向用户显示较长操作过程进度的控件 它由一个矩形窗口组成 随着操作的进行而逐渐被填充MFC的CProgressCtrl类封装了进度条控件 该类的Create成员函数负责创建进度条控件 其函数原型为 BOOLCreate DWORDdwStyle constRECT rect CWnd pParentWnd UINTnID 进度条风格 进度条 ProgressBar 是一个向用户显示较长操作过程进度的控件 它由一个矩形窗口组成 随着操作的进行而逐渐被填充Border 设置边框Vertical 垂直进度条Smooth 使用不间断蓝色填充 进度条相关函数 设置进度条的范围SetRange 用来设置进度条的范围 设置进度条的当前进度SetPos 用来设置进度条的当前进度 使进度条增加一个步长StepIt 使进度增加一个步长 设置进度条的步长值 SetStep 用来设置进度条的步长值 使进度条前进给定值 OffsetPos 使进度条前进给定值 进度条实例 模拟扫描文件进度条 滑动条 滚动条和进度条比较 控件的访问 第3种方法 访问控件一般有3种方法 利用对话框的数据交换功能访问控件适用于静态创建的控件 通过调用UpdateData 函数 实现对话框和控件的数据交换 通过控件对象来访问控件利用CWnd类的成员函数来访问控件 编辑框控件 创建下列应用程序 类名CAddDlg 静态文本控件访问方法 方法1 2 方法1 添加三个成员变量 变量的类型是int类型 注意 需调用UpdateData 如下所示voidCAddDlg OnBtnAdd UpdateData TURE 注意参数 m num3 m num1 m num2 UpdateData F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024安全员考试考前冲刺练习题【各地真题】附答案详解
- 2025年自考专业(市场营销学)测试卷【学生专用】附答案
- 2024-2025学年度自考专业(护理)模拟试题含完整答案详解【名校卷】
- 2024年安全员考试每日一练试卷含答案详解(预热题)
- 2024年焊工考试检测卷含答案详解(A卷)
- 上海家居装饰装修施工合同示范文本3篇
- 2025年高级电焊工考试试题题库含答案参考
- 2024-2025学年自考专业(公共关系)测试卷附答案详解(模拟题)
- 2024计算机二级测试卷及参考答案详解(基础题)
- 客房销售合同(二)
- 德国巴斯夫抗氧剂和紫外线吸收剂
- SG-A088接地装置安装工程工检验批质量验收记录
- 《芯片原理与技术》课件微流控芯片
- 财务代理记账报税合同模板
- HY_T 0330-2022 海滩养护与修复工程验收技术方法
- 混凝土外观质量缺陷及治理措施PPT课件
- 十四条经络养生课件
- 麻醉医师资格分级授权管理能力评价与再授权制及程序培训考核试题及答案
- 钢结构厂房监理实施细则
- 大陆法系的形成与发展
- 9材料选择及混粉设计
评论
0/150
提交评论