键盘与鼠标事件与图形处理等课件_第1页
键盘与鼠标事件与图形处理等课件_第2页
键盘与鼠标事件与图形处理等课件_第3页
键盘与鼠标事件与图形处理等课件_第4页
键盘与鼠标事件与图形处理等课件_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、17:5717:57 VB应用程序能够响应多种鼠标事件和键盘事件应用程序能够响应多种鼠标事件和键盘事件. 利用键盘事件可以编程响应多种键盘操作,也可以解利用键盘事件可以编程响应多种键盘操作,也可以解释、处理释、处理ASCASC字符。字符。 可用鼠标或键盘管理长时间的后台任务处理,这就使可用鼠标或键盘管理长时间的后台任务处理,这就使用户得以向其他应用程序进行切换或中断后台任务处用户得以向其他应用程序进行切换或中断后台任务处理。理。 17:57l KeyPress事件事件l 例如例如 Private Sub Text1_Keypress(KeyAscii As Integer) End SubKe

2、yAscii是所按键的是所按键的ASCII码。码。例:例:If KeyAscii=65 And KeyAscii=122 Then KeyAscii=42 42对应对应 *号号 End If17:57l KeyDown和和KeyUp事件事件l KeyDown和和KeyUp事件返回的是事件返回的是“键键”(不(不区分大小写,得到相同区分大小写,得到相同KeyCode码)码)l KeyPress事件返回的是事件返回的是“字符字符”的的ASCII码码(区区分大小写分大小写)l 例如例如 Private Sub Form_KeyDown(KeyCode As Integer,Shift As Inte

3、ger) End Sub17:57Private Sub Form_KeyUp(KeyCode As Integer,Shift As Integer) End Sub两个参数的含义:两个参数的含义:1. KeyCode 含义含义2. Shift 含义含义 (指(指Shift、Ctrl、 Alt三个转换键的状态)三个转换键的状态)17:57说明:说明:(一)(一)键事件按下列顺序发生键事件按下列顺序发生: KeyDown KeyPressKeyUp (二)(二)KeyDown触发后,不一定触发触发后,不一定触发KeyUp,当,当KeyDown 按下后,拖动鼠标,那么将不会触发按下后,拖动鼠标,

4、那么将不会触发KeyUp事件。事件。 (三)定义(三)定义KeyDown:在控件有焦点的情况下按下键时发生。:在控件有焦点的情况下按下键时发生。KeyPress:在控件有焦点的情况下按下键时发生。:在控件有焦点的情况下按下键时发生。 (下面会解释和下面会解释和KeyDown 的区别的区别)KeyUp:在控件有焦点的情况下释放键时发生。:在控件有焦点的情况下释放键时发生。 17:57 默认情况下,控件的键盘事件优先于窗体的键盘事件默认情况下,控件的键盘事件优先于窗体的键盘事件,因此发生键盘事件时,总是先激活控件的键盘事件,因此发生键盘事件时,总是先激活控件的键盘事件。如果希望窗体先接收键盘事件,

5、必须把窗体的如果希望窗体先接收键盘事件,必须把窗体的KeyPreview属性设置为属性设置为True,否则不能激活窗体的键否则不能激活窗体的键盘事件。(即盘事件。(即KeyDown、KeyPress、KeyUp事件过程事件过程结果不显示任何信息)结果不显示任何信息)17:57 1.KeyPress主要用来捕获数字主要用来捕获数字(包括包括Shift+数字的符号数字的符号)、字母(包括大小写)、小键盘等除了字母(包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、方

6、向键外的、方向键外的ANSI字符。字符。 KeyDown 和和KeyUp 通常可以捕获键盘除通常可以捕获键盘除了了PrtScrn所有按键。所有按键。2.KeyPress 只能捕获单个字符。只能捕获单个字符。KeyDown 和和KeyUp 可以可以捕获组合键。捕获组合键。3.KeyPress 可以捕获单个字符的大小写可以捕获单个字符的大小写4.KeyDown和和KeyUp 对于单个字符捕获的对于单个字符捕获的KeyValue 都是都是一个值,也就是不能判断单个字符的大小写。一个值,也就是不能判断单个字符的大小写。5.KeyPress 不区分小键盘和主键盘的数字字符。不区分小键盘和主键盘的数字字符

7、。KeyDown 和和KeyUp 区分小键盘和主键盘的数字字符。区分小键盘和主键盘的数字字符。17:57 VB应用程序能够响应多种鼠标事件。例如,应用程序能够响应多种鼠标事件。例如, 窗体,图片框与图像控件都能检测鼠标指针的窗体,图片框与图像控件都能检测鼠标指针的位置,并可判定其左,右键是否按下,还能位置,并可判定其左,右键是否按下,还能响应鼠标按钮与响应鼠标按钮与【ShiftShift】与【】与【 CtrlCtrl】或【】或【AltAlt】键的各种组合。此外】键的各种组合。此外VB应用程序还可应用程序还可同时支持事件驱动的拖放功能和同时支持事件驱动的拖放功能和OLE的拖放的拖放功能。可用功能

8、。可用Drag方法连同某些属性及时间来方法连同某些属性及时间来启用诸如拖放控件的操作。启用诸如拖放控件的操作。17:57事件事件描述描述MouseDown按下任意鼠标按钮按下任意鼠标按钮时发生时发生MouseUp释放任意鼠标按钮释放任意鼠标按钮时发生时发生MouseMove每当鼠标指针移动每当鼠标指针移动到屏幕新位置时发到屏幕新位置时发生生17:57 当鼠标指针位于无控件的窗体上方时,窗体将当鼠标指针位于无控件的窗体上方时,窗体将识别鼠标事件。当鼠标指针在控件上方时,控识别鼠标事件。当鼠标指针在控件上方时,控件将识别鼠标事件。如果按下鼠标按钮不放,件将识别鼠标事件。如果按下鼠标按钮不放,则对象

9、将继续识别所有鼠标事件,直到用户释则对象将继续识别所有鼠标事件,直到用户释放按钮为止。即使此时指针已移离对象,情况放按钮为止。即使此时指针已移离对象,情况也是如此。三种鼠标事件均使用下列参数也是如此。三种鼠标事件均使用下列参数 17:57参参 数数描描 述述Button位域参数,按左键返回位域参数,按左键返回1,右键返回,右键返回2,中间键,中间键返回返回4Shift位域参数,按【位域参数,按【Shift】返回】返回1,【,【Ctrl】返回】返回2,【,【Alt】返回】返回4X,Y返回鼠标当前位置的返回鼠标当前位置的X,Y坐标值坐标值17:57MouseDown事件是三种鼠标事件中作常用的事件

10、。例如事件是三种鼠标事件中作常用的事件。例如,在运行时可用它来调整控件在窗体上的位置,也可,在运行时可用它来调整控件在窗体上的位置,也可用它来实现某些图形效果。按下鼠标按钮时,就可触用它来实现某些图形效果。按下鼠标按钮时,就可触发发Mousedown事件。事件。鼠标事件被用来识别和响应各种鼠标状态,并把这些状鼠标事件被用来识别和响应各种鼠标状态,并把这些状态看作独立的事件,不应将鼠标事件与态看作独立的事件,不应将鼠标事件与Click 事件和事件和DblClick事件混为一谈。在按下鼠标按钮并释放时,事件混为一谈。在按下鼠标按钮并释放时,Click 事件只能把此过程识别为一个单一的操作事件只能把

11、此过程识别为一个单一的操作单单击操作。鼠标事件不同于击操作。鼠标事件不同于Click 事件和事件和DblClick事件之事件之处还在于鼠标事件能够区分两个鼠标按钮与处还在于鼠标事件能够区分两个鼠标按钮与Shift、Ctrl、Alt键。键。17:57 当鼠标指针在屏幕上移动就会发生当鼠标指针在屏幕上移动就会发生MouseMove事件。当鼠标指针处在窗体和控件的边框内,事件。当鼠标指针处在窗体和控件的边框内,窗体和控件均能识别窗体和控件均能识别MouseMove事件。事件。17:57释放鼠标按钮时释放鼠标按钮时,MouseUp事件就会发生,事件就会发生,MouseUp事件与事件与MouseDown

12、 ,MouseMove事件搭配使用,往往相得益彰。事件搭配使用,往往相得益彰。如果能够做到在释放按钮时停止绘图,而在按如果能够做到在释放按钮时停止绘图,而在按住鼠标按钮是从当前位置开始绘制轨迹,则这住鼠标按钮是从当前位置开始绘制轨迹,则这个程序将会更有用。为此,应用程序必须响应个程序将会更有用。为此,应用程序必须响应三种操作:按下鼠标按钮(三种操作:按下鼠标按钮(MouseDown),移动鼠标指针(,移动鼠标指针(MouseMove),释放鼠标按),释放鼠标按钮(钮(MouseUp)17:57 编写代码,使之对鼠标事件做出不同的响应,同时编写代码,使之对鼠标事件做出不同的响应,同时还要考虑用户

13、按下了那个按钮或者按下了还要考虑用户按下了那个按钮或者按下了Shift、Ctrl、Alt键,这样才能使应用程序的功能更加完善。为提供键,这样才能使应用程序的功能更加完善。为提供这些选择,可使用这些选择,可使用Mousedown ,MouseMove和和MouseUp事件过程的事件过程的Button,Shift参数。参数。 Mousedown ,MouseMove和和MouseUp事件用事件用Button参数判断按下的是哪个鼠标按钮或哪些鼠参数判断按下的是哪个鼠标按钮或哪些鼠标按钮。标按钮。Button参数是位域参数,其中每位代表参数是位域参数,其中每位代表一个状态或条件,这些值被表示成整数。一

14、个状态或条件,这些值被表示成整数。Button参数参数P264表表10.6 Shift参数见参数见P267表表10.717:57 MousePointer属性属性 P170 表表10.9 1.在程序代码中设置:在程序代码中设置: 对象对象.MousePointer=设置值设置值 2.在属性窗口中设置在属性窗口中设置 3.自定义鼠标光标自定义鼠标光标 MousePointer属性设置为属性设置为99,然后把图标文,然后把图标文件赋给件赋给MouseIcon属性。属性。17:57属性:属性: DragMode属性属性 Dragmode=0 人工拖放人工拖放 Dragmode=1 自动拖放自动拖放

15、DragIcon属性属性拖动时的图标拖动时的图标事件:事件:DragDrop DragOver方法方法: Move Drag17:57 (1) Visual Basic坐标系和笛卡尔平面坐标系不同坐标系和笛卡尔平面坐标系不同计算机屏幕的坐标系是计算机屏幕的坐标系是: 图形处理(选学、一般了解)图形处理(选学、一般了解) 窗体的左上角是原点窗体的左上角是原点 X X轴的正向水平向右轴的正向水平向右 Y Y轴的正向垂直向下轴的正向垂直向下这是计算机领域里的传统之一。这是计算机领域里的传统之一。:窗体中控件的位置用:窗体中控件的位置用LeftLeft,TopTop属性描述。属性描述。LeftLeft

16、表示控件表示控件 左上角到窗体左边的距离,左上角到窗体左边的距离,TopTop表示控件左上角到窗体上表示控件左上角到窗体上 边的距离。边的距离。17:57以下规则用于以下规则用于VBVB坐标系统。坐标系统。1.1.当移动控件或调整的大小时,使用控件的坐标当移动控件或调整的大小时,使用控件的坐标系统。如果直接在窗体上绘制对象时,窗体就系统。如果直接在窗体上绘制对象时,窗体就是容器。如果在框架或图片框里绘制控件时,是容器。如果在框架或图片框里绘制控件时,框架或控件则是容器。框架或控件则是容器。2.2.所有的图形和所有的图形和PrintPrint方法使用容器的坐标系统。方法使用容器的坐标系统。17:

17、57l一些用来调整窗体的大小或移动窗体的语句,用特维一些用来调整窗体的大小或移动窗体的语句,用特维来表示窗体的位置和大小。当创建用来调整窗体大小来表示窗体的位置和大小。当创建用来调整窗体大小或移动窗体的代码时,应先检查或移动窗体的代码时,应先检查ScreenScreen对象的对象的HeightHeight属性和属性和WidthWidth属性,以确保窗体在屏幕上大小合适。属性,以确保窗体在屏幕上大小合适。l 屏幕的左上角总是(屏幕的左上角总是(0,00,0)。任何容器的缺省坐标系)。任何容器的缺省坐标系统,都是从容器的左上角(统,都是从容器的左上角(0,00,0)坐标开始。)坐标开始。17:57

18、 利用窗体的利用窗体的Scale方法方法 如:Form1.Scale (-50, 50) - (50, -50) 其中:前一个括号指定左上角坐标,后一个括号指定右下角坐标利用到窗体的利用到窗体的ScaleScale系列属性系列属性图形处理图形处理 ScaleLeft属性属性:确定对象左边的水平坐标; ScaleTop属性属性:确定对象顶端的垂直坐标; ScaleWidth属性属性:确定对象内部水平的单元数目; ScaleHeight属性属性:确定对象内部垂直的单元数目。 如:ScaleLeft = -50 : ScaleTop = 50 ScaleWidth = 100 : ScaleHeig

19、ht = -10017:57可读系统由控件的可读系统由控件的ScaleMode属性设置的。属性设置的。ScaleMode的值有:的值有:ScaleModeScaleMode值值 意义意义 0 0 用户自定义用户自定义 1 1 点素(点素(TwipTwip即即“特维特维”,缺省刻度),缺省刻度) 2 2 点(点(PointPoint) 3 3 象素(象素(PixelPixel,这与屏幕分辨率有关),这与屏幕分辨率有关) 4 4 字符(字符(CharacterCharacter) 5 5 英寸(英寸(InchInch) 6 6 毫米(毫米(MillimeterMillimeter) 7 7 厘米(

20、厘米(CentimeterCentimeter) 图形处理图形处理1 Inch = 1440 Twips; 1 Centimeter = 567 Twips 1 Inch = 72 Points; 1 字符宽(水平方向)= 120 Twips1 字符高(垂直方向)= 240 Twips;1 磅= 20 Twips。(磅即Point)17:57 对象:窗体、图形框、打印机对象:窗体、图形框、打印机 属性:属性:CurrentX、CurrentY,该属性设计阶段不可用,该属性设计阶段不可用 绝对坐标绝对坐标 :(x,y) 相对坐标:相对坐标:step ( x, y) 窗体、图形框或打印机的窗体、图

21、形框或打印机的DrawWidth属性给出这些对象上所画属性给出这些对象上所画线的宽度或点的大小。线的宽度或点的大小。 DrawWidth属性以像素为单位来度量,最小值为属性以像素为单位来度量,最小值为1。 图形处理图形处理17:57 图形处理图形处理 封闭图形的填充方式由以下两个属性决定:封闭图形的填充方式由以下两个属性决定: FillColor指定填充图案的颜色,缺省值与指定填充图案的颜色,缺省值与ForeColor相同相同FillStyle属性指定填充的图案,共有属性指定填充的图案,共有8种内部图案。种内部图案。DrawStyle设置值设置值 线型线型 0 实线实线 1 长划线长划线 2

22、点线点线 3 点划线点划线 4 点点划线点点划线 5 透明线透明线 6 内实线内实线 17:57VBVB采用对象前景色(采用对象前景色(ForeColorForeColor)来绘图)来绘图 RGB函数函数格式:格式:其中:其中: 红、绿、蓝三基色的成分使用红、绿、蓝三基色的成分使用0255之间的整数,共有之间的整数,共有 256256256种颜色种颜色 QBColor函数函数格式:格式:其中:其中: 颜色码使用颜色码使用015之间的整数,共有之间的整数,共有16色色 图形处理图形处理17:57 ShapeShape控件可以用来画矩形、正方形、椭圆、圆、圆角矩控件可以用来画矩形、正方形、椭圆、圆

23、、圆角矩形及圆角正方形。形及圆角正方形。 当当ShapeShape控件添加到窗体时显示为一个矩形,可通过设置控件添加到窗体时显示为一个矩形,可通过设置ShapeShape属性确定所需要的几何形状。属性确定所需要的几何形状。 Line控件可以用来画线。步骤如下:控件可以用来画线。步骤如下: (1) (1) 单击工具箱中的单击工具箱中的LineLine图标;图标; (2) (2) 移动鼠标到要画线的起始位置;移动鼠标到要画线的起始位置; (3) (3) 按下鼠标左键并拖曳鼠标到要画线按下鼠标左键并拖曳鼠标到要画线结束处,放开鼠标左键。结束处,放开鼠标左键。图形处理图形处理17:57 Line方法用

24、于画直线或矩形方法用于画直线或矩形 格式:格式:其中:其中: (x1,y1):为起点坐标:为起点坐标 (x2,y2):为终点坐标:为终点坐标 Step:表示采用相对坐标:表示采用相对坐标 B:表示画矩形:表示画矩形 F:表示用画矩形的颜色来填充矩形。:表示用画矩形的颜色来填充矩形。图形处理图形处理主要有主要有: Line方法方法,Circle方法方法,Pset方法方法,Point方法方法17:57 CircleCircle方法用于画圆、椭圆、圆弧和扇形方法用于画圆、椭圆、圆弧和扇形格式:格式:其中:其中:(x,y)(x,y)为圆心坐标;为圆心坐标;StepStep表示采用相对坐标。表示采用相对

25、坐标。 Pset方法用于画点方法用于画点 格式:格式: 其中:其中:(x,y)为点的坐标;为点的坐标;Step表示采用相对坐标;表示采用相对坐标; 采用背景颜色可清除某个位置上的点。采用背景颜色可清除某个位置上的点。 Point方法用于返回指定点的方法用于返回指定点的RGB颜色,颜色, 格式:格式: 其中:其中:(x,y)为点的坐标。为点的坐标。 图形处理图形处理17:57.画点画点 单个像素的控制是简单的图形操作。单个像素的控制是简单的图形操作。Pset方法用来设置方法用来设置指定点处像素的色彩:指定点处像素的色彩: Object. Pset (x,y),Color 参数参数x和和y是单精度

26、型数,所以它们可以接受整数或分数是单精度型数,所以它们可以接受整数或分数的输入。的输入。X、y也可以是任何含有变量的数值表达式。也可以是任何含有变量的数值表达式。 如果没有包括如果没有包括Color参数,参数,Pset将像素设置为前景色(将像素设置为前景色(ForeColor)。)。17:57若要在两个坐标点之间画一条直线,可使用若要在两个坐标点之间画一条直线,可使用Line方法的方法的简单形式,其语法如下:简单形式,其语法如下: object.Line(x1,y1)-(x2,y2),Color其中其中Object是可选择的,若省略,此方法将在代码所连是可选择的,若省略,此方法将在代码所连接的

27、窗体(当前窗体)上画线。接的窗体(当前窗体)上画线。(x1,y1)也是可选的,也是可选的,如果省略这些光标,将把该对象的当前坐标作为起点如果省略这些光标,将把该对象的当前坐标作为起点。当前坐标是由。当前坐标是由CurrentX和和CurrentY属性指定的。就属性指定的。就所有的坐标值来说,所有的坐标值来说,x和和y参数可以是整数,也可以是参数可以是整数,也可以是分数。分数。17:57 VB还提供了简单的画方块(矩形)的方法。当在还提供了简单的画方块(矩形)的方法。当在Line方法中使用方法中使用B选项时,选项时,VB把指定点作为矩形的对角点把指定点作为矩形的对角点,可画出一个矩形。语句格式如

28、下:,可画出一个矩形。语句格式如下: Line(x1,y1)-Step(x0,y0),B注意,在注意,在B之前有两个逗号,表示之前有两个逗号,表示Color参数被省参数被省略了。如果在略了。如果在B之后指定之后指定F,可以填充所绘制的,可以填充所绘制的矩形(注意,没有矩形(注意,没有B就不能用就不能用F)。当使用该选)。当使用该选项时,方框总会被填充为实心。例如:项时,方框总会被填充为实心。例如: Line(500,500)-Step(1000,1000),BF17:57Circle方法可画出圆形和椭圆形的各种形状。另外,方法可画出圆形和椭圆形的各种形状。另外,Circle方法还可以画出圆弧(

29、圆的一部分)和锲形饼块。使用方法还可以画出圆弧(圆的一部分)和锲形饼块。使用变化的变化的Circle方法方法,可以画出多种曲线。可以画出多种曲线。为了画圆,为了画圆,VB需要给出该圆的圆心位置和它的半径。画出需要给出该圆的圆心位置和它的半径。画出一个圆的语法是:一个圆的语法是: Object.CircleStep(x,y),Radius,Color方括号表明方括号表明Object和和Step关键字是任选项。如果不指定关键字是任选项。如果不指定Object,则认为指定的就是当前的窗体。则认为指定的就是当前的窗体。x,y参数是圆心的参数是圆心的坐标,坐标,Radius参数是圆的半径。参数是圆的半径。17:57 在在Visual Basic程序里加入图片程序里加入图片用代码加入图片(两种方法)用代码加入图片(两种方法): 用用LoadPicture函数函数 如:如:Ima

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论