您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第8章 键盘、鼠标事件和
第8章键盘、鼠标事件和图形•VisualBasic为用户提供了键盘、鼠标事件用于响应键盘操作和鼠标操作。在VisualBasic中,大多数控件都有键盘事件和鼠标事件。这一章将讲述与键盘和鼠标相关的内容,除此之外,还有通常在鼠标事件中出现的关于绘制图形方面的内容。8.1键盘事件•键盘事件共有三种事件,分别为KeyPress(敲击键盘)事件、KeyDown(按键被按下)事件和KeyUp(按键被松开)事件。KeyPress事件当敲击键盘时触发;KeyDown事件当键盘上的按键被按下时触发;KeyUp事件则当键盘上按下的键被松开时触发。8.1.1ASCII码•ASCII是美国标准信息交换码(AmericanStandardCodeforInformationInterchange)的缩写。码值从0到255,代表了字母、数字、标点符号和其他字符。ASCII码是一种标准化的编码,用以在计算机之间或计算机与外围设备之间交换信息。8.1.2处理“敲击键盘”•当用户敲击键盘上的有ASCII相对应的键时,KeyPress事件就会被触发。VisualBasic中能够得到焦点的控件都能够响应该事件。例如,窗体、图片框、文本框、按钮等等,下面通过文本框的KeyPress事件来说明该事件。首先,在窗体上画出一个文本框Text1,然后双击其打开代码编辑器窗口。在过程框中选择“KeyPress”后,代码编辑区内就会出现该事件的过程头和过程尾,(具体内容请参照本书)8.1.3处理“按键被按下”和“按键被松开”•KeyDown事件在键盘上的某个键被按下的一刹那触发,而KeyUp事件是在松开(抬起)按键时被触发。其实,这两个事件可以说是KeyPress(敲击)动作的分解,因为KeyPress包括按下键和松开键两个动作。象KeyPress事件一样,VisualBasic中的大部分控件都能接收这两个事件。(具体内容请参照本书)8.1.4应用案例——使用方向键移动坦克•【例8.4】如图8.3所示,在窗体中画一个图片框将其名称设置为picGrand,在图片框内部再画一个图像框并起名叫imgTank。程序运行的效果是:(具体内容请参照本书)8.2鼠标事件•鼠标事件一共有五个(不包括托放事件),分别是Click、DblClick、MouseDown、MouseUp和MouseMove。前面的章节中已经讲述过关于Click、DblClick事件的内容。本节主要讲述后面三个事件。•Click、DblClick事件只能识别鼠标单击或双击动作,而通过MouseDown,MouseUp,MouseMove事件可以使应用程序对鼠标位置及状态的变化作出响应。ViusalBasic中窗体和大多数控件都能够识别这些事件。8.2.1处理“鼠标键被按下”•按下鼠标键的一刹那会触发MouseDown事件,其中鼠标键包括鼠标左键、中键(滑轮)和右键。8.2.2处理“鼠标键被松开”•MouseUp事件在松开鼠标键的一刹那被触发。MouseUp事件也有Button、Shift、X、Y等4个参数,其解释意义和MouseDown事件的相同。通常,编程人员都将菜单弹出语句写在该事件里,详细内容在本书第9章讲述。在此可以做个很小的试验,在Windows的桌面上按下鼠标右键不要松开,这时不会有弹出式菜单出现,而当你松开鼠标右键时弹出式菜单就出现了,这就说明程序写在了MouseUp事件里,而并没有写在MouseDown事件内。其原因是如果菜单弹出程序写在了MouseDown事件内,有时会屏蔽掉正常的鼠标选择功能。(具体内容请参照本书)8.2.3处理“鼠标移动”•MouseMove事件在鼠标移动时被触发。其格式为:•Form_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)(具体内容请参照本书)8.3拖放•VisualBasic中除了如前所述的鼠标事件可以完成很多功能以外,实际上还有一种操作方法可以用来完成某些功能,即拖放操作——使用鼠标器将对象从一个地方拖放到另一个位置再放下。在整个“拖放”操作过程中,用户首先在源对象上按下鼠标左键不放,然后把源对象拖放到目标对象上释放(松开)鼠标键。为了有助于理解这种拖放,可以把整个拖放过程分解成两个操作:一个是发生在源对象的“拖”操作;另一个是发生在目标对象上的“放”操作,即把源对象“放”在目标对象上。在字处理程序中,拖放操作的用途之一就是将文本从一个地方移到另一个地方。另一个用途就是将不需要的东西拖到“回收站”里,从而在屏幕上将其清除。8.3.1拖放操作实例——垃圾桶的实现•通过两个事件过程和少量属性设置就可以控制拖放操作。将某对象的DragMode属性设置为1,用户就可以拖动该对象了。使用DragIcon属性可以指定对象拖动过程中鼠标指针的形状。当一个源对象被放在目标对象上时,就会触发目标对象的DragDrop事件。当某对象被拖动并经过窗体中的其他对象时,就会触发被经过对象的DragOver事件。下面通过一个实例说明在程序中使用拖放操作的用法。(具体内容请参照本书)8.3.2OLE拖放操作•OLE拖放是VisualBasic应用程序中添加的最强大、最有用的功能之一,利用它可以在控件和控件之间、在控件和其它Windows应用程序之间拖动文本和图形。VisualBasic中的大部分控件都支持OLE拖放,但默认状态下控件的OLEDropMode属性被设置为0,也就是不允许拖放。如果要使用OLE拖放功能,必须先把OLEDropMode属性设置为1,这样控件才成为接受文件拖放的一个OLE容器。OLEDragMode属性决定了控件是自动还是需要手工实现“拖”操作。为了方便操作可以将其设置为1,让其自动实现“拖”操作。(具体内容请参照本书)8.4图形•VisualBasic给用户提供了一些图形控件,用户可以利用这些图形控件让自己的窗体界面更加出彩。同时,VisualBasic也给用户提供了一些绘制图形的语句,例如Pset、Line、Circle等,利用这些语句用户甚至可以编写与Windows自带的画图软件相仿的画图程序。8.4.1直线控件•直线(Line)用来在窗体、框架或图片框中创建简单的线段。通过属性设置可控制直线的位置、长度、颜色和样式来定义应用程序的外观。(具体内容请参照本书)8.4.2形状控件•形状(Shape)控件可以在窗体,框架或图片框中创建矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形。可以设置形状的样式、颜色、填充样式、边框颜色和边框样式等。形状的常用属性有:•除了BorderColor、BorderStyle和BorderWidth属性与直线对应的属性相同外,8.4.3应用案例——绘制圆柱体•(具体内容请参照本书)8.4.4用PSet方法编写画刷程序•PSet方法可以在窗体或图片框指定的位置用给定的色彩画一个“点”。点的大小由对象的DrawWidth属性指定。PSet方法的使用格式如下:[窗体]或图片框.PSet[Step](x,y)[,color]•(具体内容请参照本书)8.4.5用Line方法绘制直线•Line方法用于在窗体或图片框对象上画直线和矩形。绘制直线时,应给出起点和终点坐标。•用Line方法绘制直线的格式如下:•[窗体]或图片框.Line[[Step](x1,y1)]-[Step](x2,y2)[,color]•(具体内容请参照本书)8.4.6用Line方法绘制矩形•用Line方法绘制矩形时与使用Line方法绘制直线时相比,多了两个参数B和F。Line方法绘制矩形的格式如下:•对象.Line[[Step](x1,y1)]-[Step](x2,y2)[,color],[B[F]](具体内容请参照本书)8.4.7用Circle方法画圆或椭圆•Circle方法可用于在窗体、图片框或打印机上绘制圆、椭圆、圆弧及扇形等图形。前面介绍的属性DrawWidth,DrawStyle等在Circle方法中也同样适用。(具体内容请参照本书)8.4.8用Circle方法画圆弧及扇形•绘制弧和扇形时仍使用Circle方法。弧与扇形既有相同点,也有不同点。弧可以视为由圆或椭圆的边线中截取的一部分,而扇形还要在弧的基础上,从弧的两端再分别画一条到圆心的直线,它是封闭的图形。绘制弧和扇形时使用的格式如下:•对象.Circle[Step](x,y),radius[,color][start,end][,aspect](具体内容请参照本书)8.4.9用PaintPicture方法旋转图形•使用PaintPicture方法,可以在窗体、图片框和Printer对象上的任何地方绘制图形。也可以通过使用负的目标高度值(height1)和/或目标宽度值(width1),可以水平或垂直翻转位图。•该方法只能对用Picture属性、LoadPicture函数设置的图形进行操作,用绘图方法绘制的图形在没有存储成图形文件前不能用其操作。其使用格式如下:•object.PaintPicturepicture,x1,y1,width1,height1,x2,y2,width2,height2,opcode8.4.10重绘图形和画笔模式•(具体内容请参照本书)
本文标题:第8章 键盘、鼠标事件和
链接地址:https://www.777doc.com/doc-3404841 .html