




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章 输入/输出操作管理,键盘响应与鼠标响应 文件的数据管理 文件系统控件,本章学习目标,熟练掌握键盘字符、功能键、控制键等各类按键的识别方法 掌握MouseDown、MouseUp和MouseMove三类鼠标响应事件的编程方法 全面掌握顺序文件、随机文件的打开、读写和关闭操作 掌握三种文件系统控件的使用,尤其是如何实现三种控件的功能同步,键盘响应示例,编写一个可判断功能键F2与Alt、Shift、Ctrl中的哪一个或哪两个进行组合控制的键盘响应示例程序,键盘响应示例实现方法,选择正确的响应事件 如何区分用户按键,选择正确的响应事件,在VB6.0中,可以响应用户按键的事件有:KeyPress(若有键被按下)、KeyDown(按下某个键)、KeyUp(松开某个键)三种,但KeyPress事件只能区分普通的ASCII码字符,无法判断组合控制键、光标移动键等,因此本示例中必须使用KeyDown或KeyUp事件。,如何区分用户按键,无论是KeyDown还是KeyUp事件,都有两个参数:KeyCode As Integer, Shift As Integer,其中Keycode中存放所按键的键值(不区分大小写字符,但区分大小键盘);Shift参数用于表示事件发生时,Shift键、Alt键和Ctrl键的状态。 键盘上各键的键值可通过VB对象浏览器了解 例如:判断用户是否按下F2键,只需判断KeyCode=vbKeyF2是否成立,VB中的三个测试常量,VbShiftMask、VbCtrlMask及VbAltMask,其值分别表示1、2和4 。 常见的测试这三种控制键的方法 :,先设置以下三个表达式: shiftdown = (Shift And vbShiftMask) 0 altdown = (Shift And vbAltMask) 0 ctrldown = (Shift And vbCtrlMask) 0 如果shiftdown and altdown and ctrldown为真,则表示按下了ShiftCtrlAlt键;若shiftdown为真表示按下了Shift键,其余以此类推。,键盘响应相关知识点,KeyPress、KeyUp和KeyDown键盘响应事件 三种事件的响应差异 KeyPress事件的使用,KeyPress、KeyUp和KeyDown,当用户按下并且释放一个ANSI键就会触发KeyPress事件; 按下一个键便触发KeyDown事件,释放引发KeyUp事件。 在引发键盘事件的同时,用户所按的键盘码作为实参传递给相应的事件过程,供程序判断识别用户的操作。,三种事件的响应差异,KeyPress只响应按下标准ASCII字符表中对应的键时的事件,如回车键、Tab键、Backspace键等以及标准键盘中的字母、标点、数字键等。 KeyDown和KeyUp事件能区分控制键、功能键、大小键盘区域内的字符等KeyPress无法处理的情况 ,但不区分大小写。 KeyDown与KeyUp无本质差别,但若用户需进行单步跟踪调试时,可选择KeyUp,KeyPress事件的使用,将文本框Text1中输入的文本转换为大写在文本框Text2中显示。 Private Sub Text1_KeyPress(KeyAscii As Integer) Text2 = Text2 + UCase(Chr(KeyAscii) End Sub 将KeyAscii参数设置为0时,可取消击键事件,这样对象便接收不到字符,即可屏蔽键盘输入。,【思考题6-1】,无论用户在文本框Text1中输入任何字符,程序均在Text1中显示大写字符A; 当用户在Text1中按键时,直接显示所按键的大写。,鼠标响应编程示例,一个可进行简单的随手涂鸦的画图程序。 当用户在窗体上按下鼠标不放并移动时,便可进行随手涂鸦,此时鼠标指针为十字形,松开鼠标,鼠标指针恢复为箭头形状。,随手涂鸦的画图程序实现分析,选择正确的响应事件 :MouseDown,MouseUp及MouseMove 如何设置鼠标指针 如何实现随手涂鸦,如何设置鼠标指针,通过MousePointer属性,大部分控件都具有该属性。在程序设计中,往往可通过不同的鼠标指针形状来表达正在执行不同的任务,如用沙漏状表示等待状态;十字形表示画图状态;箭头及问号状表示求助状态等等。 对象名.MousePointer设定值,如何实现随手涂鸦,可在MouseMove事件过程中,用画线的方法来实现该功能。 用Line -(X, Y)表示从当前位置画线到(X,Y)坐标。,鼠标响应相关知识点,MouseDown、MouseUp和MouseMove事件的应用 DragDrop和DragOver事件,MouseDown、MouseUp和MouseMove的应用,事件过程的一般格式(以窗体对象为例): Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 这三种事件过程所包含的参数完全相同,参数的具体含义参见教材,DragDrop和DragOver事件,DragOver事件在拖放操作正在进行时发生; DragDrop事件最常见的激活状态是在一个完整的拖放动作完成(如将一外控件拖到另一个对象上,并释放了鼠标)时。 DragDrop事件过程用来控制在一个拖动操作完成时将会发生的情况,而DragOver事件过程则用来处理拖动正在进行时需执行的功能。,DragDrop和DragOver事件过程,事件过程的一般格式(以窗体对象为例): Sub Form_DragDrop(Source As Control, X As Single, Y As Single) Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer) 其中: Source :表示正在被拖放的控件对象; X,Y:指当前鼠标指针在目标对象上的位置坐标; State:代表源控件被拖动的情况,如是正在向目标范围内拖动(值为0),还是向目标范围外拖动(值为1),或者是在目标范围内部移动(值为2)。,文件的数据管理,文件管理的基本概念 文件的基本操作 文件操作应用实例,文件管理的基本概念,文件的结构特点 VB中文件的分类 根据文件的存取方式和结构分 根据文件的数据性质分 根据文件中数据的编码方式分 仅讨论顺序文件和随机文件的操作,文件的基本操作,最基本的三类文件操作:打开文件读写文件关闭文件。 相关的判断函数、定位函数等。,顺序文件的基本操作,顺序文件的打开 顺序文件的读操作 顺序文件的写操作 关闭文件,Close 关闭所有打开的文件 Close #文件号 ,#文件号. 关闭指定的文件,顺序文件的打开,格式一:Open 文件名 for input as #文件号 功能:打开已有数据的文件准备读操作 示例:Open “d:TEST1.dat“ For Input As #1 格式二:Open 文件名 for output as #文件号 功能:打开文件准备写操作(会清除原数据) 示例:Open “d:test2.dat“ For Output As #2 格式三:Open 文件名 for append as #文件号 功能:打开一文件准备追加数据(原文件可有可无),顺序文件的读操作,格式一:Input #文件号,变量列表 功能:从打开的文件中依次读取数据赋于各变量(将逗号和换行符作为数据分隔符) 格式二:Line Input #文件号,变量名 从文件中读取一行数据 ,直到遇到回车chr(13)或回车换行chr(13)+chr(10)为止 格式三:s=Input(字符个数,#文件号) 功能:从以Input 或 Binary 方式打开的文件中读取指定个数的字符串(作为函数返回值),字符可包括标点符号、回车、空白等。 示例:MyChar = Input(1, #1) 从#1文件中读取一个字符赋给MyChar变量,顺序文件的写操作,格式一:Write #文件号 ,表达式表 功能:将各数据项写入文件中,自动以逗号作为数据分隔符,且对字符串数据加双引号。 示例: Write # 6, “zhang“;“wang“;“li“ Write # 6, 78;99;67 则文件中的数据存储形式为: “zhang“,“wang“,“li“ 78,99,67,格式二:Print #文件号 ,表达式表 功能:按Print格式打印的各数据项写入文件中,不自动加任何分隔符 示例: Print # 1, “zhang“;“wang“;“li“ Print # 1, 78;99;67 则文件中的数据存储形式为: zhangwangli 78 99 67,随机文件的基本操作,随机文件的打开 随机文件的读操作 随机文件的写操作,随机文件的打开,格式: Open 文件名 for Random as #文件号 len=记录长度 功能:打开一指定记录长度(0-32K)的随机文件以准备读写操作,默认记录长度为128字节。 随机文件的记录长度可通过Len函数获得 ,随机文件打开可同时进行读写操作,随机文件的读操作,格式: Get #文件号,记录号,记录变量 功能:将指定的记录读到记录变量中(起始记录为)。每读一条记录,记录指针自动指向下一条记录,记录号加1 。记录号可缺省,表示读取当前记录,但其后的逗号不可省。,随机文件的写操作,格式: Put #文件号,记录号,记录变量 功能:将记录变量中的内容写到指定记录号的位置(原位置数据被盖),省略记录号时,指插入到当前记录之后。,与文件操作相关的函数,FreeFile() LOF(文件号) FileLen(文件名) EOF(文件号) 获取文件当前读/写的位置,文件操作应用实例 【实例6-1】,【实例6-1】顺序文件的基本操作。,实现分析,文件读写操作的实现 在读取文件时,可采用Line Input将读取的行信息连接起来暂时保存到某一内存变量以便统一显示在文本框中。 Line Input #filenum, s buffer = buffer + s + Chr(13) + Chr(10),实现分析-考虑程序的健壮性问题,(2) 避免用户未选取任何文件便进行文件读写操作: 可在程序中采用类似于If Len(Cdl1.FileName) 0(其中Cdl1为通用对话框名称)的语句来判断是否已选取了文件名。,filesize = FileLen(FileName) 获取指定文件名的文件长度 If filesize Maxlen Then Maxlen为一自定义常量(65535) MsgBox “文件太大了!“ Exit Sub End If,(1) 避免长度超过规定的文件的读写操作:,文件操作应用实例【实例6-2】,【实例6-2】随机文件的基本操作。,【实例6-2】实现分析,界面设置 文件记录类型的定义 如何实现记录的添加 显示学生信息时的一些细节问题,文件系统控件简介,驱动器列表框 目录列表框 文件列表框,驱动器列表框,驱动器列表框是供用户操作计算机中各驱动器的一个下拉式列表框,主要属性是Drive,该属性不能在设计状态时设置,只能在程序中被引用或设置。 Drive属性的设置方法 :对象名.Drive驱动器名 , 例如:DriveList1.Drive=”e:”,目录列表框,目录列表框显示当前驱动器的目录结构及当前目录下的所有子目录,供用户选择其中的某个目录作为当前目录。在目录列表框中,鼠标双击某个目录便可显示该目录下的所有子目录。 目录列表框最常用的属性是Path,该属性用于设置或返回当前目录的完整路径,只能在程序中使用,不能在设计阶段设置。 目录列表框的最重要事件是Change事件,当用户改变了目录列表框的当前目录后便激发该事件。,文件列表框,文件列表框的主要属性有: (1) Pattern属性:设置显示文件的类型,如*.bmp,可用分号分隔多种类型。 (2) FileName属性:用于返回某个选定的文件名(但不包括文件路径)。 (3) Path属性:返回或设置文件列表框的当前路径。 (4) Li
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园活动:梯形探秘
- 年度化验室工作总结模版
- 小学及初中暑假防溺水安全教育专题会议
- 冠状动脉痉挛的临床护理
- 农机驾驶员培训与春耕安全保障
- PEP小学英语六年级上册知识点总结模版
- 《餐饮集团人才招募》课件
- 《客户关系管理软件应用》课件
- 2025年小学学雷锋演讲比赛活动的工作总结模版
- 2025标准技术转让合同范本
- 2025华远国际陆港集团所属企业校园招聘113人笔试参考题库附带答案详解
- 《寻找消失的分数》期中考试分析班会课件
- 合伙买房合同协议
- 丁集矿井1.8Mt-a新井设计-煤矿冲击矿压
- 鱼塘项目可行性研究报告
- 2024年世界职业院校技能大赛高职组“化学实验技术”赛项参考试题库(含答案)
- 数学活动5用不等式解决实际问题和猜猜哪个数最大(课件)人教版七年级数学下册
- 烧伤病人的护理课件
- 2025年湖南省中职《思想政治》普测核心考点试题库500题(重点)
- 《基于PLC药品自动包装机设计》11000字【论文】
- 2025年全球及中国800G 数据中心交换机行业头部企业市场占有率及排名调研报告
评论
0/150
提交评论