当数据拖动到一个放落目标上,并且放落目标的 OLEDropMode 属性设置为 1 -启用时发生该事件。
语法
PROCEDURE Object.OLEDragOver
LPARAMETERS oDataObject, nEffect, nButton, nShift,
nXCoord, nYCoord, nState
设置
oDataObject
对 OLE 拖放 DataObject 的一个对象引用,同 GetData 和 GetFormat 方法一起使用可以返回 DataObject 中的数据和数据格式。
nEffect
传递给 OLEGiveFeedback 事件的一个值,表明当数据放落到目标上时采取的动作。nEffect 的初始值表明拖动源支持的 OLE 拖放操作。下表列出了nEffect 的值,以及每种动作的说明。
nEffect | Foxpro.h 常量 | 说明 |
0 | DROPEFFECT_NONE | 放落目标不接受数据,或者取消了 OLE 放落操作。 |
1 | DROPEFFECT_COPY | 数据从拖动源复制到放落目标中。 |
2 | DROPEFFECT_MOVE | 数据从拖动源移动到放落目标中。 |
4 | DROPEFFECT_LINK | 数据从拖动源链接到放落目标。 |
包含一个数字,该数字指定了为将数据放落到目标上,放开了哪个鼠标键:1(左键)、2(右键)或4(中间键)。
nShift
包含一个数字,该数字指定了将数据放落到目标上时,辅助键的状态。有效的辅助键是 SHIFT、CTRL 和 ALT。下表列出了对应于单个辅助键的 nShift返回值。
nShift | 辅助键 |
1 | SHIFT |
2 | CTRL |
4 | ALT |
如果当按下鼠标时按住了多个辅助键,则 nShift 参数包含这些辅助键的值的和。例如,释放鼠标键时按下 CTRL 键,nShift 参数包含2。但是如果在释放鼠标键时按下CTRL+ALT, nShift 参数包含 6。
nXCoord, nYCoord
包含当释放鼠标将数据放落到目标上时,鼠标指针在表单中的水平(nXCoord) 和垂直 (nYCoord) 位置。这些坐标是按表单的坐标系表达的,表单的 ScaleMode 属性指定了度量单位。
nState
包含一个数值,该数值指定了数据被拖动的方向 -到控件或对象中、到控件或对象的内部,或到控件或对象的外部。下表列出了 nState 的值。
nState | 说明 |
0 | 数据被拖动到控件或对象中。当 nState 为零时,可以设置OLEDropEffects 和 OLEDropHasData 属性。 |
1 | 数据被拖动到控件或对象的外部。 |
2 | 数据被拖动到控件或对象的内部, |
说明
OLEDragOver 是一个放落目标的事件,只有当控件或对象的 OLEDropMode 属性设置为 1 -启用时才发生。如果 OLEDropMode 属性设置为 0 -禁止或 2 -传递到容器,则不发生这个事件。
注意 应该避免在 oledragover 事件中使用 WAIT WINDOW 和 MESSAGEBOX()这样的命令和函数创造等待状态。