第10章 鼠标、键盘和OLE_第1页
第10章 鼠标、键盘和OLE_第2页
第10章 鼠标、键盘和OLE_第3页
第10章 鼠标、键盘和OLE_第4页
第10章 鼠标、键盘和OLE_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、第第10章章 鼠标、键盘和鼠标、键盘和OLE控件控件鼠标鼠标键盘事件键盘事件拖放拖放使用使用OLEOLE控件控件10.110.110.210.210.310.310.410.410.1 鼠标鼠标 10.1.1 10.1.1 鼠标事件鼠标事件在程序运行时,有时需要对鼠标指针的位置和状态变化在程序运行时,有时需要对鼠标指针的位置和状态变化作出响应,因此除了常用的作出响应,因此除了常用的ClickClick和和DblClickDblClick事件之外,还事件之外,还需要使用鼠标事件,需要使用鼠标事件,鼠标事件包括鼠标事件包括MouseUpMouseUp、MouseDownMouseDown和和Mou

2、seMoveMouseMove。 1. 1. 鼠标事件的格式鼠标事件的格式鼠标事件包括鼠标事件包括MouseUpMouseUp、MouseDownMouseDown和和MouseMoveMouseMove,分别是,分别是当释放鼠标、按下鼠标和移动鼠标时触发的。当释放鼠标、按下鼠标和移动鼠标时触发的。MouseUpMouseUp、MouseDownMouseDown和和MouseMoveMouseMove鼠标事件的鼠标事件的语法格式语法格式是是统一的。统一的。语法:语法:Private Sub Private Sub 对象对象_ _鼠标事件鼠标事件(Button As Integer, Butt

3、on As Integer, Shift As Integer, X As Single, Y As SingleShift As Integer, X As Single, Y As Single)10.1.1 鼠标事件鼠标事件说明:说明:(1 1)ButtonButton表示是哪个鼠标键被按下或释放表示是哪个鼠标键被按下或释放。用。用0 0、1 1、2 2三个位表示鼠标三个位表示鼠标的左、右、中键,每位用的左、右、中键,每位用0 0、1 1表示被按下或释放,三个位的二进制转换成十进表示被按下或释放,三个位的二进制转换成十进制就是制就是ButtonButton的值,如图的值,如图10.110

4、.1所示,表所示,表10.110.1列出了按钮与常数值的对应关系。列出了按钮与常数值的对应关系。十进制十进制常数常数按下按钮按下按钮0无无1vbLeftButton左按键左按键2vbRightButton右按键右按键4vbMiddleButton中按键中按键VbLeftButton+vbRightButton左、右按键左、右按键VbLeftButton+vbMiddleButton左、中按键左、中按键VbRightButton+vbMiddleButton右、中按键右、中按键VbLeftButton+vbRightButton+vbMiddleButton左、中、右按键左、中、右按键表表10.

5、1 Button常数值常数值图图10.1 Button键键10.1.1 鼠标事件鼠标事件(2 2)ShiftShift表示当鼠标键被按下或被释放时,表示当鼠标键被按下或被释放时,ShiftShift、CtrlCtrl、AltAlt键的按下键的按下或释放状态。用或释放状态。用0 0、1 1、2 2三个位表示鼠标的三个位表示鼠标的ShiftShift、CtrlCtrl、AltAlt键,三个位的二键,三个位的二进制转换成十进制数就是进制转换成十进制数就是ShiftShift的值。的值。ShiftShift、CtrlCtrl、AltAlt键切换常数如表键切换常数如表10.210.2所示。所示。常数常数

6、值值描述描述vbShiftMask1SHIFT键被按下。键被按下。vbCtrlMask2CTRL键被按下。键被按下。vbAltMask4ALT键被按下。键被按下。表表10.2 Shift的常数值的常数值10.1.1 鼠标事件鼠标事件(3 3)X X、Y Y表示鼠标指针的坐标位置。如果鼠标指针在窗体或图片框中,表示鼠标指针的坐标位置。如果鼠标指针在窗体或图片框中,用该对象内部的坐标系,其他控件则用控件对象所在容器的坐标系。用该对象内部的坐标系,其他控件则用控件对象所在容器的坐标系。关于鼠标键事件有几点说明:关于鼠标键事件有几点说明:移动鼠标连续触发移动鼠标连续触发MouseMoveMouseMo

7、ve事件。事件。按下鼠标键,触发按下鼠标键,触发MouseDownMouseDown事件。事件。释放鼠标键,触发释放鼠标键,触发MouseUpMouseUp事件。事件。MouseUpMouseUp事件之后,触发事件之后,触发ClickClick事件。事件。鼠标事件可以区分鼠标的左、右、中键与鼠标事件可以区分鼠标的左、右、中键与ShiftShift、CtrlCtrl、AltAlt键,并可识键,并可识别和响应各种鼠标状态。别和响应各种鼠标状态。ClickClick和和DblClickDblClick事件不能识别鼠标的左、右、中事件不能识别鼠标的左、右、中键与键与ShiftShift、CtrlCtr

8、l、AltAlt键。键。 鼠标事件是由鼠标指针所在的窗体或控件来识别的。如果按下鼠标不放,鼠标事件是由鼠标指针所在的窗体或控件来识别的。如果按下鼠标不放,则对象将继续识别所有鼠标事件(即使指针已离开对象仍继续识别),直则对象将继续识别所有鼠标事件(即使指针已离开对象仍继续识别),直到用户释放鼠标为止。到用户释放鼠标为止。10.1.1 鼠标事件鼠标事件2. 2. MouseDownMouseDown和和MouseUpMouseUp事件事件MouseDownMouseDown和和MouseUpMouseUp事件分别当鼠标按下和释放时触发,通常可以用来事件分别当鼠标按下和释放时触发,通常可以用来在运

9、行时调整控件的位置,或实现某些图形效果。在运行时调整控件的位置,或实现某些图形效果。MouseDownMouseDown事件更常用些。事件更常用些。【例例10-110-1】在窗体中制作一个画线和画方块的程序。在窗体中制作一个画线和画方块的程序。界面设计:放置一个图片框界面设计:放置一个图片框Picture1Picture1用来绘图,三个按钮用来绘图,三个按钮Command1Command1Command3Command3,其中,其中Command1Command1和和Command2Command2分别为分别为“直线直线”和和“方块方块”。功能要求:单击功能要求:单击Command1Comma

10、nd1或或Command2Command2按钮后,在图片框中单击鼠标当鼠按钮后,在图片框中单击鼠标当鼠标按下时确定一个端点,当鼠标释放时确定另一个端点来画直线或画方块。标按下时确定一个端点,当鼠标释放时确定另一个端点来画直线或画方块。Command3Command3在图片框中清除图形。运行界面如图在图片框中清除图形。运行界面如图10.210.2所示。所示。图10.2 运行界面10.1.1 鼠标事件鼠标事件程序代码如下:Dim C1 As Integer Dim X1 As Integer, Y1 As Integer Private Sub Command1_Click()单击直线按钮 C1

11、= 1End Sub Private Sub Command2_Click()单击方块按钮 C1 = 2End Sub Private Sub Command3_Click() 单击清除绘图 Picture1.ClsEnd Sub10.1.1 鼠标事件鼠标事件在图片框中按下鼠标键时确定一个端点。在图片框中按下鼠标键时确定一个端点。Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)在图片框中按下鼠标键在图片框中按下鼠标键 If Button = 1 Then X

12、1 = X Y1 = Y End IfEnd Sub10.1.1 鼠标事件鼠标事件在图片框中释放鼠标键则确定另一个端点,根据单击的按钮,在图片框中在图片框中释放鼠标键则确定另一个端点,根据单击的按钮,在图片框中由两端点画直线和画方块。由两端点画直线和画方块。Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)在图片框中释放鼠标键在图片框中释放鼠标键 If Button = 1 Then Select Case C1 Case 1 Picture1.Line (X1,

13、 Y1)-(X, Y) Case 2 Picture1.Line (X1, Y1)-(X, Y), , B End Select End IfEnd Sub Private Sub Form_Load()装载窗体装载窗体 C1 = 0End Sub10.1.1 鼠标事件鼠标事件3 3MouseMoveMouseMove事件事件MouseMoveMouseMove事件是鼠标在屏幕上移动时触发的事件是鼠标在屏幕上移动时触发的,窗体和控件都能识别,窗体和控件都能识别MouseMoveMouseMove事件,事件, 当鼠标指针在对象的边界范围内时该对象就能接收当鼠标指针在对象的边界范围内时该对象就能接

14、收MouseMoveMouseMove事件,除非有另一个对象捕获了鼠标。事件,除非有另一个对象捕获了鼠标。当移动鼠标时,当移动鼠标时,ButtonButton参数对于参数对于MouseMoveMouseMove事件与事件与MouseDownMouseDown和和MouseUpMouseUp事件不同,事件不同,MouseMoveMouseMove事件的事件的ButtonButton值表示所有按键的状态,而值表示所有按键的状态,而MouseDownMouseDown和和MouseUpMouseUp事件事件的的ButtonButton的值无法检测是否同时按下两个以上的按键的值无法检测是否同时按下两个

15、以上的按键。【例例10-210-2】在图片框中绘制连续的线和方块。在图片框中绘制连续的线和方块。使用使用MouseMoveMouseMove事件可以连续地画线和方块,当鼠标移动时在不断触发的事件可以连续地画线和方块,当鼠标移动时在不断触发的MouseMoveMouseMove事件中画线和方块。运行界面如图事件中画线和方块。运行界面如图10.310.3所示。所示。10.1.1 鼠标事件鼠标事件当第一次按下鼠标时,开始画线或方块,第二次按下鼠标就停止。当第一次按下鼠标时,开始画线或方块,第二次按下鼠标就停止。Private Sub Picture1_MouseDown(Button As Inte

16、ger, Shift As Integer, X As Single, Y As Single)在图片框中按下鼠标键在图片框中按下鼠标键 If Button = 1 And C2 = 0 Then C2 = 1 Select Case C1 Case 1 Picture1.CurrentX = X Picture1.CurrentY = Y Case 2 X1 = X Y1 = Y End Select Else C2 = 0 End IfEnd Sub10.1.1 鼠标事件鼠标事件当在图片框中移动鼠标时,不断地画线和画方块,实现连续画线和方块。当在图片框中移动鼠标时,不断地画线和画方块,实现

17、连续画线和方块。Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)在图片框中移动鼠标在图片框中移动鼠标 If Button = 1 And C2 = 1 Then Select Case C1 Case 1 Picture1.Line -(X, Y) Case 2 Picture1.Line (X1, Y1)-(X, Y), , BF End Select End IfEnd Sub10.1.2 改变鼠标指针改变鼠标指针 1 1MousePionterMous

18、ePionter属性属性对象的对象的MousePionterMousePionter属性用于设置鼠标指针的形状属性用于设置鼠标指针的形状。在。在运行时对于控件,当鼠标经过时就会显示运行时对于控件,当鼠标经过时就会显示MousePionterMousePionter属属性设置的形状;对于窗体,当鼠标经过空白区域或窗体中性设置的形状;对于窗体,当鼠标经过空白区域或窗体中的的MousePionterMousePionter属性为属性为0 0的控件时,就会显示窗体的的控件时,就会显示窗体的MousePionterMousePionter属性设置的形状。属性设置的形状。MousePionterMouse

19、Pionter属性的设置值与形状如表属性的设置值与形状如表10.310.3所示。所示。10.1.2 改变鼠标指针改变鼠标指针常数常数值值描述描述vbDefault0(默认)形状由操作系统决定。(默认)形状由操作系统决定。VbArrow1箭头。箭头。VbCrosshair2十字线。十字线。VbIbeam3I型型VbIconPointer4图标(矩形内的小矩形)。图标(矩形内的小矩形)。VbSizePointer5尺寸线(指向东、南、西、北的箭头)。尺寸线(指向东、南、西、北的箭头)。VbSizeNESW6右上右上-左下尺寸线(指向东北、西南的双箭头)。左下尺寸线(指向东北、西南的双箭头)。VbS

20、izeNS7垂直尺寸线(指向南、北的双箭头)。垂直尺寸线(指向南、北的双箭头)。VbSizeNWSE8左上左上-右下尺寸线(指向东南、西北的双箭头)。右下尺寸线(指向东南、西北的双箭头)。VbSizeWE9水平尺寸线(指向东、西的双箭头)。水平尺寸线(指向东、西的双箭头)。VbUpArrow10向上的箭头。向上的箭头。VbHourglass11沙漏(表示等待状态)。沙漏(表示等待状态)。VbNoDrop12禁止形状(不允许放下)。禁止形状(不允许放下)。VbArrowHourglass13箭头和沙漏。箭头和沙漏。VbArrowQuestion14箭头和问号。箭头和问号。VbSizeAll15四

21、向尺寸线(表示缩放)。四向尺寸线(表示缩放)。VbCustom99通过通过MouseIcon属性指定的自定义图标。属性指定的自定义图标。表表10.3 MousePionter属性值属性值10.1.2 改变鼠标指针改变鼠标指针 2 2MouseIconMouseIcon属性属性当当MousePionterMousePionter属性设置为属性设置为9999时,可以使用时,可以使用MouseIconMouseIcon属属性来确定鼠标指针的形状。有两种方法设置性来确定鼠标指针的形状。有两种方法设置MouseIconMouseIcon属性:属性:(1 1)在属性窗口中选择)在属性窗口中选择MouseI

22、conMouseIcon属性,单击属性,单击 按钮,出按钮,出现现“加载图标加载图标”对话框,选择一个图形文件为鼠标指针形状,对话框,选择一个图形文件为鼠标指针形状,可以是可以是. .icoico或或.cur.cur文件文件。(2 2)在程序中使用)在程序中使用LoadPictureLoadPicture函数函数来加载图形文件。来加载图形文件。例如,将经过窗体时鼠标指针设置为用户定义的图标:例如,将经过窗体时鼠标指针设置为用户定义的图标: Form1.MouseIcon = Form1.MouseIcon = LoadPicture(c:windowswinupd.icoLoadPicture

23、(c:windowswinupd.ico)10.2 键盘事件键盘事件1. 1. 查看键盘按键的查看键盘按键的ASCASC码值码值如果不清楚键盘各按键的如果不清楚键盘各按键的ASCASC码值,可以通过对象浏览器窗口来查看。码值,可以通过对象浏览器窗口来查看。在工具栏单击在工具栏单击“对象浏览器对象浏览器”按钮,打开按钮,打开“对象浏览器对象浏览器”如图如图10.410.4所示。在搜所示。在搜索栏键入索栏键入“KeyCodeConstantsKeyCodeConstants”,单击搜索,单击搜索 按钮。在按钮。在“成员成员”栏出现各种栏出现各种键盘按键常数,选择某一个按键常数就可以在下面的描述中显

24、示按键的键盘按键常数,选择某一个按键常数就可以在下面的描述中显示按键的ASCASC码值。码值。 图10.4 查看键代码10.2 键盘事件键盘事件 2. 2. KeyPressKeyPress事件事件KeyPressKeyPress事件是当键盘有键按下时触发的。事件是当键盘有键按下时触发的。KeyPressKeyPress事件检事件检测的键有测的键有EnterEnter、TabTab、BackSpaceBackSpace以及键盘上的字母、数字和标以及键盘上的字母、数字和标点符号键点符号键,对于其他功能键、编辑键和定位键,则不作响应。,对于其他功能键、编辑键和定位键,则不作响应。语法:语法:Pri

25、vate Sub Private Sub 对象对象_ _KeyPress(KeyAsciiKeyPress(KeyAscii As Integer) As Integer)说明:说明: 对象:是接受键盘事件的对象,由具有焦点的对象接收。对象:是接受键盘事件的对象,由具有焦点的对象接收。 KeyAsciiKeyAscii:是按键对应的:是按键对应的ASCASC码值。将码值。将keyAsciikeyAscii改为改为0 0时可时可取消本次击键,这样对象便接收不到按键的字符。取消本次击键,这样对象便接收不到按键的字符。10.2 键盘事件键盘事件【例例10-310-3】在文本框中输入学生的学号和密码,

26、并在输入时检测按键的有在文本框中输入学生的学号和密码,并在输入时检测按键的有效性。效性。功能要求:在输入用户名的文本框中输入用户名,在按键时判断如果不是功能要求:在输入用户名的文本框中输入用户名,在按键时判断如果不是字母键则将按键取消并将焦点设置在文本框,输入用户名超过字母键则将按键取消并将焦点设置在文本框,输入用户名超过8 8位时提示出错。位时提示出错。运行界面如图运行界面如图10.510.5所示,当输入用户名超过所示,当输入用户名超过8 8位时的显示。位时的显示。 图10.5 运行界面10.2 键盘事件键盘事件程序代码如下:程序代码如下:Private Sub Text1_KeyPress

27、(KeyAscii As Integer)在用户名文本框按键在用户名文本框按键 If KeyAscii 122 Or (KeyAscii 90) Then 按键不是大小写字母按键不是大小写字母 KeyAscii = 0 Text1.SetFocus End If If Len(Text1.Text) 8 Then 超过超过8位位 MsgBox 用户名超过用户名超过8位位, vbOKOnly, 输入出错输入出错 KeyAscii = 0 Text1.SetFocus End IfEnd Sub10.2 键盘事件键盘事件 3 3KeyDownKeyDown和和KeyUpKeyUp事件事件KeyDo

28、wnKeyDown事件是当按下按键时触发,事件是当按下按键时触发,KeyUpKeyUp事件是当释放事件是当释放按键时触发,这两个事件提供了最低级的键盘响应,可以按键时触发,这两个事件提供了最低级的键盘响应,可以报告键盘的物理状态。报告键盘的物理状态。语法:语法:Private Sub Private Sub 对象对象_ _KeyDown(KeyCodeKeyDown(KeyCode As Integer, As Integer, Shift As Integer)Shift As Integer)Private Sub Private Sub 对象对象_ _KeyUp(KeyCodeKeyUp

29、(KeyCode As Integer, As Integer, Shift As Integer)Shift As Integer)10.2 键盘事件键盘事件【例例10-410-4】在图片框中用键盘键控制小球的运动。在图片框中用键盘键控制小球的运动。功能要求:在图片框功能要求:在图片框Picture1Picture1中放置一个形状控件中放置一个形状控件Shape1Shape1,窗体还有两个,窗体还有两个按钮按钮Command1Command1和和Command2Command2分别为分别为“开始开始”和和“结束结束”,单击,单击“开始开始”按钮黄色按钮黄色小球小球Shape1Shape1出现

30、,单击箭头键出现,单击箭头键“”“”和和“”“”小球向运动左和右移动,单击空小球向运动左和右移动,单击空格键小球向上或向下跳动。格键小球向上或向下跳动。窗体中对象的属性设置如表窗体中对象的属性设置如表10.410.4所示。所示。对象名对象名属性属性属性值属性值Form1Caption运动小球运动小球Shape1Shape3-CircleFillStyle0-SolidFillColor&H0000FFFF&VisibleFalseCommand1Caption开始开始Command2Caption结束结束表表10.4 窗体中对象的属性设置窗体中对象的属性设置10.2 键盘事件键

31、盘事件程序分析:箭头键程序分析:箭头键“”“”的的ASCASC码值为码值为3737,“”“”的的ASCASC码值为码值为3939,空,空格键为格键为3232。运行界面如图。运行界面如图10.610.6所示。所示。图图10.6 运行界面运行界面10.3 拖放拖放 1 1属性属性(1 1)DragModeDragMode属性属性DragModeDragMode属性确定拖放操作是属性确定拖放操作是自动方式自动方式还是还是手动方式手动方式。默认值为默认值为0 0手动方式,可以用手动方式来确定拖放操作何时手动方式,可以用手动方式来确定拖放操作何时开始或结束,当开始或结束,当DragModeDragMod

32、e属性设置为属性设置为1 1自动方式时,能够对自动方式时,能够对一个对象执行自动拖放操作。一个对象执行自动拖放操作。(2 2)DragIconDragIcon属性属性DragIconDragIcon属性是设置拖动操作时显示的图标属性是设置拖动操作时显示的图标,默认源对,默认源对象的灰色轮廓作为拖动的图标,也可以设置为象的灰色轮廓作为拖动的图标,也可以设置为. .icoico图标文图标文件作为拖动操作的图标。件作为拖动操作的图标。10.3 拖放拖放 2事件事件(1)DragDrop事件事件DragDrop事件是当一个完整的拖放动作完成时触发事件是当一个完整的拖放动作完成时触发,即将一个控件拖动,

33、即将一个控件拖动到一个对象上,并释放鼠标按钮,或使用到一个对象上,并释放鼠标按钮,或使用Drag方法并将其动作参数设置为方法并将其动作参数设置为2(Drop)时触发。)时触发。DragDrop事件可用来控制在拖动操作完成时将会发生的情事件可用来控制在拖动操作完成时将会发生的情况。况。语法:语法:Private Sub 对象对象_DragDrop(Source As Control, X As Single, Y As Single)(2)DragOver事件事件DragOver事件是当拖放操作正在进行时发生,事件是当拖放操作正在进行时发生,当拖动对象越过一个控件当拖动对象越过一个控件时触发该事

34、件时触发该事件。语法:语法:Private Sub 对象对象_DragOver(Source As Control, X As Single, Y As Single, State As Integer)10.3 拖放拖放 3.3.方法方法DragDrag方法用于在代码中对象的拖放行动。方法用于在代码中对象的拖放行动。DragDrag方法可以启动、停止或取消方法可以启动、停止或取消手工拖动手工拖动。语法:语法:对象对象.Drag Action.Drag Action拖放操作的步骤如下:拖放操作的步骤如下:(1 1)设置)设置DragModeDragMode属性为属性为1 1,使对象可以自动被拖

35、放。,使对象可以自动被拖放。(2 2)设置)设置DragIconDragIcon属性决定对象被拖动时鼠标指针的形状,可以是任何属性决定对象被拖动时鼠标指针的形状,可以是任何位图或图标。位图或图标。(3 3)为目标对象编写)为目标对象编写DragDropDragDrop和和DragOverDragOver事件。事件。【例例10-510-5】在窗体中将图像框进行拖放。在窗体中将图像框进行拖放。功能要求:在窗体中放置四个图像框功能要求:在窗体中放置四个图像框Image1Image1Image4Image4,一个框架,一个框架Frame1Frame1和和一个标签一个标签Label1Label1,将三个

36、小图像框,将三个小图像框Image1Image1Image3Image3拖放到大图像框拖放到大图像框Image4Image4中,中,就会将图像放置到就会将图像放置到Image4Image4中,并将文本在标签中,并将文本在标签Label1Label1中显示。中显示。10.3 拖放拖放 属性设置如表属性设置如表10.510.5所示,设计界面如图所示,设计界面如图10.7(a)10.7(a)所示,运行界面如图所示,运行界面如图10.7(b)10.7(b)所示,显示将所示,显示将Image1Image1中的图片拖放到中的图片拖放到Image4Image4中。中。对象名对象名属性属性属性值属性值Form

37、1Caption拖放对象拖放对象Image1Image2Image3DragMode1-AutomaticStretchTruePicture设置三个图形文设置三个图形文件件Image4StretchTrueLabel1Caption空空10.3 拖放拖放 程序代码如下:程序代码如下: 在图像框在图像框Image4Image4是目的对象,在拖放事件中将是目的对象,在拖放事件中将SourceSource对象的图形装载到图像框对象的图形装载到图像框Image4Image4中,并根据中,并根据SourceSource所对应的拖动源对象,用分支结构显示标签所对应的拖动源对象,用分支结构显示标签Labe

38、l1Label1的内容。的内容。Private Sub Image4_DragDrop(Source As Control, X As Single, Y As Single)在图像框中拖放图像在图像框中拖放图像 Image4.Picture = Source.Picture If Source = Image1 Then Label1.Caption = 鸵鸟鸵鸟 ElseIf Source = Image2 Then Label1.Caption = 钟钟 Else Label1.Caption = 五星五星 End IfEnd Sub10.4 使用使用OLE控件控件Object Link

39、ing and Embedding,对象连接与嵌入,简称,对象连接与嵌入,简称OLE技术技术, OLE 是在客户应用程序间传输和共享信息的一组是在客户应用程序间传输和共享信息的一组综合标准。允许创建带有指向应用程序的链接的综合标准。允许创建带有指向应用程序的链接的混合文档混合文档以以使用户修改时不必在应用程序间切换的协议。使用户修改时不必在应用程序间切换的协议。 10.4 使用使用OLE控件控件10.4.110.4.1添加添加OLEOLE容器控件容器控件1 1在设计时嵌入或链接对象在设计时嵌入或链接对象(1 1)使用)使用OLEOLE控件直接嵌入对象控件直接嵌入对象将将OLEOLE控件控件OL

40、E1OLE1放置在窗体上时,就会出现放置在窗体上时,就会出现“插入对象插入对象”的对话框,如图的对话框,如图10.810.8所示。选择所示。选择“新建新建”选项按钮,并在选项按钮,并在“对象类型对象类型”框中选择的一种对象类框中选择的一种对象类型,单击型,单击“确定确定”按钮,就嵌入了一个按钮,就嵌入了一个OLEOLE对象。对象。 图图10.810.8插入对象对话框插入对象对话框10.4.1 添加添加OLE容器控件容器控件例如,在上图中例如,在上图中OLE1OLE1嵌入嵌入“媒体剪辑媒体剪辑”对象,运行工程时,在窗体上会显对象,运行工程时,在窗体上会显示出播放媒体的菜单,运行界面如图示出播放媒

41、体的菜单,运行界面如图10.910.9所示。所示。图10.6插入对象对话框图10.9插入对象对话框10.4.1 添加添加OLE容器控件容器控件(2 2)使用)使用OLEOLE控件从文件嵌入对象控件从文件嵌入对象 在图在图10.1010.10中单击中单击“从文件创建从文件创建”选项按选项按钮,单击钮,单击“浏览浏览”按钮选择文件,将所选的文件当作按钮选择文件,将所选的文件当作OLEOLE对象插入。如图对象插入。如图10.1010.10所所示。示。(3 3)使用)使用OLEOLE控件链接对象控件链接对象如果在图如果在图10.810.8或图或图10.1010.10中选择中选择“链接链接”复选框,就会

42、插入一个链接对象。复选框,就会插入一个链接对象。使用链接对象,当应用程序没有运行时,对象的数据可能被另一个应用程序使用链接对象,当应用程序没有运行时,对象的数据可能被另一个应用程序更改。更改。图10.10 从文件创建10.4.1 添加添加OLE容器控件容器控件(4 4)选择性粘贴文件)选择性粘贴文件如果只需要利用文件的一部分,可以使用如果只需要利用文件的一部分,可以使用“选择性粘贴选择性粘贴”来创建来创建OLEOLE对象。对象。使用使用“选择性粘贴选择性粘贴”的步骤如下:的步骤如下:运行需要选择的文件,将需要选择的部分复制到剪贴板上。运行需要选择的文件,将需要选择的部分复制到剪贴板上。在在VB

43、VB中用鼠标右键单击中用鼠标右键单击“OLEOLE容器控件容器控件”,从快捷菜单中选择,从快捷菜单中选择“特殊粘贴特殊粘贴”菜单项,出现菜单项,出现“选择性粘贴选择性粘贴”对话框如图对话框如图10.1110.11所示。所示。在对话框中选择在对话框中选择“粘贴粘贴”或或“粘贴链接粘贴链接”选项,单击选项,单击“确定确定”按钮就创建按钮就创建了了OLEOLE对象。对象。选择选择“粘贴粘贴”复选框是插入一个嵌入对象,选择复选框是插入一个嵌入对象,选择“粘贴链接粘贴链接”复选框是插复选框是插入一个链接对象。在图入一个链接对象。在图10.1110.11中,选择粘贴中,选择粘贴WordWord中的文本内容

44、。中的文本内容。 图10.11 选择性粘贴Word文本10.4.1 添加添加OLE容器控件容器控件3 3在运行时创建显示在运行时创建显示“插入对象插入对象”对话框对话框如果在设计时不选择如果在设计时不选择OLEOLE对象,则在运行时也可以使用对象,则在运行时也可以使用OLEOLE对象的对象的InsertObjDlgInsertObjDlg和和PasteSpecialDlgPasteSpecialDlg方法来显示方法来显示“选择性粘贴选择性粘贴”和和“插入对象插入对象”对话框,并在对话框中创建对话框,并在对话框中创建OLEOLE对象。对象。语法:语法:对象对象. . InsertObjDlgIn

45、sertObjDlg对象对象. . PasteSpecialDlgPasteSpecialDlg(1 1)InsertObjDlgInsertObjDlg方法方法InsertObjDlgInsertObjDlg方法用来显示方法用来显示“插入对象插入对象”对话框,提供可用的对象清单,对话框,提供可用的对象清单,并根据用户的选择创建对象。并根据用户的选择创建对象。例如,显示例如,显示“插入对象插入对象”对话框:对话框:OLE1.InsertObjDlgOLE1.InsertObjDlg(2 2)PasteSpecialDlgPasteSpecialDlg方法方法PasteSpecialDlgPas

46、teSpecialDlg方法用来显示方法用来显示“选择性粘贴选择性粘贴”对话框,允许用户从系统对话框,允许用户从系统剪贴板中将对象粘贴到剪贴板中将对象粘贴到OLEOLE控件。控件。10.4.1 添加添加OLE容器控件容器控件4 4在运行时创建链接或嵌入对象在运行时创建链接或嵌入对象(1 1)创建链接对象)创建链接对象用用OLEOLE控件的控件的CreateLinkCreateLink方法,在运行时从文件中创建一个链接对象。方法,在运行时从文件中创建一个链接对象。语法:语法:CreateLinkCreateLink SourceDocSourceDoc, , SourceItemSourceIt

47、em 说明:说明:SourceDocSourceDoc:为文件参数,从该文件创建对象。:为文件参数,从该文件创建对象。SourceItemSourceItem:从源文件中链接的数据。:从源文件中链接的数据。例如,创建链接对象:例如,创建链接对象:OLE1.CreateLink C:WINDOWSMediaOLE1.CreateLink C:WINDOWSMediachord.wavchord.wav (2 2)创建嵌入对象)创建嵌入对象在运行时,从文件中创建一个嵌入的对象,可以使用在运行时,从文件中创建一个嵌入的对象,可以使用CreateEmbedCreateEmbed方法。方法。语法:语法:

48、CreateEmbedCreateEmbed SourcedocSourcedoc, Class, Class10.4.2 OLE容器控件的属性、方法和事件容器控件的属性、方法和事件1. OLE1. OLE控件的常用属性控件的常用属性(1 1)ObjectObject属性属性通过使用通过使用OLEOLE控件的控件的ObjectObject属性,可以使用链接或嵌入对象的属性和方法。属性,可以使用链接或嵌入对象的属性和方法。ObjectObject属性在运行时是只读属性,它保持对属性在运行时是只读属性,它保持对OLEOLE控件中对象的引用。使用该属控件中对象的引用。使用该属性性OLEOLE控件必须

49、包含可编程的对象。控件必须包含可编程的对象。语法:语法:OLEOLE控件名控件名.Object.Object.属性属性| |方法方法 (2 2)AutoActiveAutoActive属性属性AutoActiveAutoActive属性用于设置激活属性用于设置激活OLEOLE控件对象的方式,该属性对应的各种方控件对象的方式,该属性对应的各种方式如表式如表10.610.6所示。所示。属性值属性值属性常数属性常数含义含义vbOLEActivateManual0-Manual手工激活,使用手工激活,使用DoVerb方法。方法。vbOLEActivateGetFocus1-GetFocus接受焦点激活

50、。接受焦点激活。vbOLEActivateDoubleclick2-DoubleClick双击或按双击或按ENTER键激活。键激活。vbOLEActivateAuto3-Autimatic自动激活。自动激活。表表10.6 各种激活方式各种激活方式10.4.2 OLE容器控件的属性、方法和事件容器控件的属性、方法和事件(3 3)OLETypeOLEType属性属性OLETypeOLEType属性返回属性返回OLEOLE容器控件中对象的状态。容器控件中对象的状态。0-vbOLELinked0-vbOLELinked表示链接,表示链接,1-vbOLEEmbedded1-vbOLEEmbedded表示

51、嵌入,表示嵌入,2- 2- vbOLENonevbOLENone表示不包含对象。表示不包含对象。(4 4)ClassClass属性属性ClassClass属性为内嵌对象的类名。例如,当嵌入属性为内嵌对象的类名。例如,当嵌入“媒体剪辑媒体剪辑”时,时,OLE1OLE1控件控件设置为设置为“OLE1.Class=OLE1.Class=MPlayerMPlayer”。(5 5)SizeModeSizeMode属性属性SizeModeSizeMode属性用来指定属性用来指定OLEOLE对象如何调整大小,或如何显示图像。对象如何调整大小,或如何显示图像。0 0为剪为剪裁,对象按实际大小显示;裁,对象按实

52、际大小显示;1 1为伸展,调整对象图像的大小使其充满为伸展,调整对象图像的大小使其充满OLEOLE控件;控件;2 2为自动,如果显示对象的大小作了改变,为自动,如果显示对象的大小作了改变,OLEOLE控件自动调整大小;控件自动调整大小;3 3为缩放,为缩放,重新调整对象的大小使其尽可能充满重新调整对象的大小使其尽可能充满OLEOLE控件,且仍然维持该对象原来的比例。控件,且仍然维持该对象原来的比例。10.4.2 OLE容器控件的属性、方法和事件容器控件的属性、方法和事件2. OLE2. OLE控件的常用方法控件的常用方法(1 1)UpdateUpdate方法方法要在要在OLEOLE控件中显示当

53、前的最新数据,则要使用控件的控件中显示当前的最新数据,则要使用控件的UpdateUpdate方法。运行方法。运行时对源文件的更改不会自动出现在时对源文件的更改不会自动出现在OLEOLE控件中,必须使用控件中,必须使用UpdateUpdate方法。方法。语法:语法:OLEOLE对象名对象名.Update.Update(2 2)DeleteDelete方法方法DeleteDelete方法删除指定对象,释放关联的内存,用于显式地删除对象。方法删除指定对象,释放关联的内存,用于显式地删除对象。当关闭窗体或对象被一个新对象取代时,对象都将被自动删除。当关闭窗体或对象被一个新对象取代时,对象都将被自动删除。(3 3)DoVerbDoVerb方法方法在运行时,可以使用在运行时,可以使用OLEOLE控件的控件的DoVerbDoVerb方法激活一个对象,进行编辑等操方法激活一个对象,进行编辑等操作。作。有些嵌入的对象可以通过双击来从有些嵌入的对象可以通过双击来从OLEOLE控件内部激活,称为现场激活。控件内部激活,称为现场激活。(4 4)CloseClose方法方法如果要退出如果要退出OLEOLE对象

温馨提示

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

评论

0/150

提交评论