我在这里学编程 索引篇 共55页[1 2 3 4 5 6 7 > » <... 最后一页]

OLE事件

_OLECompleteDrag(

当源部件被放到目标部件时发生,并通知源部件拖放操作被执行或取消。

语法:
Private Sub object_OLECompleteDrag([effect As Long])

Effect 源对象设置的长整型数,用来识别执行的动作,这样当部件被移动后允许源采取适当的动作(例如,如果源被从一个部件移到另一个部件,则执行删除数据操作)。可能的取值列于“设置值”中。

effect 设置值:
VbDropEffectNone 0 放目标不接受数据, 或者放操作被取消。
VbDropEffectCopy 1 放结果保存于从源到目标的数据拷贝中。初始数据没有被拖放操作改变。
VbDropEffectMove 2 放结果保存于初始数据的连接中,该数据是在拖放源和放目标之间产生的。

说明:
OLECompleteDrag 事件是 OLE 拖放操作最后调用的事件。当对象被放到目标部件时,此事件通知源部件所执行的动作。目标通过 OLEDragDrop 事件的 effect 参数设置此值。基于此,源可决定需采取的适当动作。例如,若对象被移到目标 (vbDropEffectMove),移动后源需要在自身删除该对象。

如果 OLEDragMode 设置为 Automatic,则 Visual Basic 执行缺省的动作。此事件仍然发生,允许添加或改变动作。

大部分部件支持人工 OLE 拖放事件,也有一些支持自动化 OLE 拖放事件。

_OLEDragDrop(

当源部件决定放操作能发生,且源部件被放到目标部件时,此事件发生。

注意 仅当 OLEDropMode 被设置为 1 (Manual) 时,此事件才发生。

语法:
Private Sub object_OLEDragDrop(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)

Data DataObject 对象,包含源提供的格式,另外也可能包含这些格式的数据。若 DataObject 不包含数据,则当控件调用 GetData 方法时提供数据。SetData 和 Clear 方法不能用在这里。

Effect 源对象设置的长整型数,用来识别执行的动作,这样当部件被移动后允许源采取适当的动作(例如,如果源被从一个部件移到另一个部件,则执行删除数据操作)。可能的取值列于“设置值”中。

Button 整数,当按下鼠标键时,与鼠标状态相对应。左键为位 0,右键为位 1,中键为位 2。这些位相应的值分别为 1,2 和 4,它代表了鼠标键的状态。可设置三个位中的部分、全部或根本不设置,相应地表明部分、全部按键被按下或没有按键按下。

Shift 整数,当按下 SHIFT、ctrl 和 ALT 键时,与这些键状态相对应。 shift 键为位 0,ctrl 键为位 1,alt 键为位 2。这些位相应的值分别为 1,2 和 4,shift 参数代表了这些键的状态。可设置三个位中的部分、全部或根本不设置,相应地表明部分、全部按键被按下或没有按键按下。例如,同时按下 ctrl 和 ALT 键,shift 值为 6。

x,y 确定鼠标指针当前位置的数值。x 和 y 值由对象的 ScaleHeight、ScaleWidth、ScaleLeft 和 ScaleTop 属性设置的坐标系统的格式来表示。
VbDropEffectScroll -2147483648一个掩码,指出放下目标窗口已经滚动或应该滚动。

effect 设置:
VbDropEffectNone 0 放目标不接受数据。
VbDropEffectCopy 1 放结果保存于从源到目标的数据拷贝中。初始数据没有被拖放操作改变。
VbDropEffectMove 2 放结果保存于要从拖放源移到放源的数据中。移动后,拖放源要删除数据。

说明:
源 ActiveX 部件应总是屏蔽 effect 参数值,以确保同将来实现的 ActiveX 部件兼容。目前,仅使用了 effect 参数 32 位中的 3 位,然而将来的 Visual Basic 版本就可能用到其它位。所以考虑到将来的问题, 拖源和放目标在进行任何比较之前应屏蔽这些值。

例如,源部件不能把 effect 同 vbDropEffectCopy 相比,如:

If Effect = vbDropEffectCopy...

而是应该屏蔽该值或被搜寻的值,如:

If Effect And vbDropEffectCopy = vbDropEffectCopy...

-或-

If (Effect And vbDropEffectCopy)...

这样,允许在 Visual Basic 新版本中定义新的放效果,并与现存的代码保持向后兼容性。

大部分部件支持人工 OLE 拖放事件,也有一些支持自动化 OLE 拖放事件。

_OLEDragOver(

当一个部件在另一个部件上拖动时发生。

语法:
Private Sub object_OLEDragOver(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single, state As Integer)

data DataObject 对象,包含源提供的格式,另外也可能包含这些格式的数据。若 DataObject 不包含数据,则当控件调用 GetData 方法时提供数据。SetData 和 Clear 方法不能用在这里。

effect 源对象最初设置的长整型数,用来识别它支持的效果。在事件过程中,此参数必须被目标部件正确地设置。effect 值由所有活动的效果(如设置值表)逻辑 Or 确定。目标部件应检查这些效果以及其它参数以确定哪个动作适合于它,然后把此参数设置为允许的效果之一(如源所规定),以便确定放置选项到部件该执行哪个动作。可能的取值列于“设置值”中。

button 整数,当按下鼠标键时,与鼠标状态相对应。左键为位 0,右键为位 1,中键为位 2。这些位相应的值分别为 1,2 和 4,它代表了鼠标键的状态。可设置三个位中的部分、全部或根本不设置,相应地表明部分、全部按键被按下或没有按键按下。

shift 整数,当按下 SHIFT、CTRL 和 ALT 键时,与这些键状态相对应。SHIFT 键为位 0,CTRL 键为位 1,ALT 键为位 2。这些位相应的值分别为 1,2 和 4,shift 参数代表了这些键的状态。可设置三个位中的部分、全部或根本不设置,相应地表明部分、全部按键被按下或没有按键按下。例如,同时按下 CTRL 和 ALT 键,shift 值为 6。
x,y 在目标窗体或控件中, 规定当前鼠标指针水平 (x) 和垂直 (y) 位置的数。x 和 y 值由对象的 ScaleHeight、ScaleWidth、ScaleLeft 和 ScaleTop 属性设置的坐标系统格式来表示。
state 整数,相应于控件的转换状态,此控件将被拖放到与其相关的目标窗体或控件中。可能的取值列于“设置值”中。

effect 设置:
vbDropEffectNone 0 放目标不接受数据。
VbDropEffectCopy 1 放结果保存于从源到目标的数据拷贝中。初始数据没有被拖放操作改变。
VbDropEffectMove 2 放结果保存于要从拖放源移到放源的数据中。移动后,拖放源要删除数据。
vbDropEffectScroll -2147483648
(&H80000000)
在目标部件中,滚动正在或将要发生。此值与其它值共同使用。注意 仅当在部件中执行自己的滚动时才能应用。

state 设置:
vbEnter 0 在目标范围内源部件正被拖动。
VbLeave 1 在目标范围之外源部件正被拖动。
VbOver 2 在目标内源部件已经从一个位置移到另一个位置。

说明:
注意 如果 state 参数是 vbLeave,表明鼠标指针已离开目标,则 x 和 y 参数保持为零值。

源 ActiveX 部件应总是屏蔽 effect 参数值,以确保同将来实现的 ActiveX 部件兼容。现在仅使用了 effect 参数 32 位中的 3 位,然而将来的 Visual Basic 版本就可能用到其它位。所以考虑到将来的问题,拖源和放目标在进行任何比较之前应屏蔽这些值。

例如,源部件不能把 effect 同 vbDropEffectCopy 相比,如:

If Effect = vbDropEffectCopy...

而应屏蔽该值或被搜寻的值,如:

If Effect And vbDropEffectCopy = vbDropEffectCopy...

-或-

If (Effect And vbDropEffectCopy)...

允许在 Visual Basic 新版本中定义新的放效果,并与现存的代码保持向后兼容性。

大部分部件支持人工 OLE 拖放事件,也有一些支持自动化 OLE 拖放事件。

_OLEGiveFeedback(

在每个 OLEDragOver 事件后发生。OLEGiveFeedback 允许源部件提供可视的反馈,例如通过改变鼠标的图标来表明放目标后将发生什么,或者在选项上提供可视的反馈(在源部件中)以指出将发生什么。

语法:
Private Sub object_OLEGiveFeedback(effect As Long, defaultcursors As Boolean)

effectt 在 OLEDragOver 事件中目标部件设置的长整型数, 若放选定项,则由此数确定要执行的动作。允许源采取合适的动作(例如给出可视的反馈)。可能的取值列于“设置值”中。
defaultcursors 布尔值,决定 Visual Basic 使用部件缺省鼠标图标,还是自定义鼠标图标。
True(缺省) = 使用缺省鼠标图标。
False = 不用缺省图标。必须用 Screen 对象的 MousePointer 属性设置鼠标图标。

effect 设置:
vbDropEffectNone 0 放目标不接受数据。
vbDropEffectCopy 1 放结果保存于从源到目标的数据拷贝中。初始数据没有被拖放操作改变。
vbDropEffectMove 2 放结果保存于要从拖放源移到放源的数据中。移动后,拖放源要删除数据。
vbDropEffectScroll -2147483648
(&H80000000)
在目标部件中,滚动正在或将要发生。此值与其它值共同使用。注意仅当在部件中执行自己的滚动时才能应用。

说明:
如果 OLEGiveFeedback 事件中没有代码,或者如果 defaultcursors 参数设为 True,则 Visual Basic 自动地把鼠标图标设为部件提供的缺省图标。

源 ActiveX 部件应总是屏蔽 effect 参数值,以确保同将来实现的 ActiveX 部件兼容。现在仅使用了 effect 参数 32 位中的 3 位,然而将来的 Visual Basic 版本就可能用到其它位。所以考虑到将来的问题,拖源和放目标在进行任何比较之前应屏蔽这些值。

例如,源部件不能把 effect 同 vbDropEffectCopy 相比,如:

If Effect = vbDropEffectCopy...

而应屏蔽该值或被搜寻的值,如:

If Effect And vbDropEffectCopy =

vbDropEffectCopy...

-或-

If (Effect And vbDropEffectCopy)...

允许在 Visual Basic 新版本中定义新的放效果,并与现存的代码保持向后兼容性。

大部分部件支持人工 OLE 拖放事件,也有一些支持自动化 OLE 拖放事件。

_OLESetData(

当目标部件在源的 DataObject 对象上执行 GetData 方法,但是还没有加载规定格式的数据时,在源部件上发生。

语法:
Private Sub object_OLESetData(data As DataObject, dataformat As Integer)

data 放置所需数据的 DataObject 对象。部件调用 SetData 方法加载所需的格式。
dataformat 整数,确定目标部件所需要的数据格式。源部件用此值来确定向 DataObject 对象加载的内容。

说明:
在某些情况下,特别是在源部件支持多种格式时,可能希望延迟向源部件 DataObject 对象加载数据以节省时间。此事件允许源对给定的数据格式仅响应一个请求。调用此事件时,源应该检查 format 参数以确定需加载的内容,然后在 DataObject 上执行 SetData 方法加载数据,这些数据随后被送回到目标部件。
 

_OLEStartDrag(

当部件的 OLEDrag 方法被执行时,或者在 OLEDragMode 属性被设为 Automatic,部件初始化 OLE 拖放操作时发生。

此事件指定源部件支持的数据格式和放效果。也可用于向 DataObject 对象中插入数据。

语法:
Private Sub object_OLEStartDrag(data As DataObject, allowedeffects As Long)

data DataObject 对象,含源所提供的格式以及(可选)适合那些格式的数据。若 DataObject 不包含数据,则当控件调用 GetData 方法时会提供。程序员应提供此事件中该参数的值。SetData 和 Clear 方法不能用于此处。
allowedeffects 长整型数,包含源部件支持的效果。其可能的取值列于“设置值”中。程序员应提供此事件中该参数的值。

allowedeffects 设置:
vbDropEffectNone 0 放目标不接受数据。
VbDropEffectCopy 1 放结果保存于从源到目标的数据拷贝中。初始数据没有被拖放操作改变。
VbDropEffectMove 2 放结果保存于要从拖源移到放源的数据中。移动后,拖源要删除数据。

说明:
源部件应该针对所支持的数据使用逻辑 Or 运算符,并把结果放到 allowedeffects 参数中。目标部件使用此值确定合适的动作(以及合适的用户反馈)。

如果部件的 OLEDragMode 属性被设为 Automatic,OLEStartDrag 事件也会发生。这样就允许在部件执行该操作后,再次向 DataObject 对象加入格式及数据。也可以通过清除 DataObject 对象(用 Clear 方法)忽略部件的缺省行为,然后加入自己的数据和格式。

除非目标部件需要,可能希望延迟向 DataObject 对象中加载数据。这样,由于没有加载多余的数据格式,使源部件节省了时间。当目标在 DataObject 上执行 GetData 方法时,若 DataObject 中未包含所需的数据,则源的 OLESetData 事件会发生。此时,数据可被加载到 DataObject 中,这将依次地向目标提供数据。

 

 

我在这里学编程 索引篇 共55页[1 2 3 4 5 6 7 > » <... 最后一页]