GetData 方 法
从 OLE 拖放 DataObject 对象 获取数据 只在设计时可用 .
语 法
oDataObjec t .GetData( nFormat | cFormat [, @ ArrayNam e])
参 数 描 述
nFormat | cFormat
指 定 要 获 取 数 据 的 格 式 下 表 列 出 了 每 种 数 据 格 式 的 值 以 及 说 明DataObject 自 动 支 持 下 列 格 式 还 有 其 他 格 式 可 用 但 是 需 要 额 外 的 编程 有 关 可 用 数 据 格 式 的 详 细 内 容 请 在 M S D N ( M icrosoft Developer
Network ) 中 查 看 有 关 V isual C++ 的 文 档
数 据 格 式 * |
nFormat |
| |
Format |
说 明 |
---|---|---|---|---|
CF_TEXT |
1 |
文本格式 |
||
CF_OEMTEXT |
7 |
包含 OEM 字符集中字符的文本格式 |
||
CF_UNICODETEXT |
13 |
Unicode 文本格式 只在 |
Windows NT 下可用
CF_FILES or CF_HDROP 15 一个标识一组文件的句 柄 例如从 W indows 资源管理器拖来的一组文件
CF_LOCALE 16 与剪贴板上文本相关的本地标识符的句柄
CFSTR_OLEVARIANTARRAY “ OLE Variant
Array ”
一个 Visual FoxPro 数组使用这个格式在一次 拖放中可以传送多个值 例
如 这个格式可以用于将列表框中的一些项拖动到另一个列表框中 .
续 表
CFSTR_OLEVARIANT “ OLE Varian t” 一个 Visual FoxPro 变量
Visual FoxPro 中的所有数据类型都可以用变量代 表 这个格式可以用于 拖放 Visual FoxPro 数据 并且不丢失数据类型
CFSTR_VFPSOURCEOBJECT “ VFP Source
Objec t”
对一个 Visual FoxPro 对象的引用
* 在 FOXPRO.H 中定义 .
@ArrayName
指定数组 的 名 称 当数据可以包含多个值时 将数据保存在这里 数据可以包含多个值的数据格式只有 CF_FILES CF_HDROP 和 CFSTR_OLEVARIANTARRAY 例如 可
以从 Windows 资源管理器中将一组文件拖动到 Visual FoxPro 的一个列表框中 使用 列表框 OLEDragDrop 事件 中的 GetData 方法 可以将这些文件的名称放到一个 数组 然后在 FOR … ENDFOR 循环中使用 AddItem 方法 将 数组 中的内容添加到 列表框 中
在 GetData 方法 中指定 数组 名称时 该数组必须存在 如果该 数组 存在 但是不足以包含 所 需 的 数 据 Visual FoxPro 自 动 增 加 该 数 组 的 大 小 如 果 该 数 组 比 所 需 大 Visual FoxPro 会截断该 数组
说 明
GetData 方法 返回的值取决于 nFormat 或 cFormat 指定的数据格式 如果
DataObject 不包含在 nFormat 或 cFormat 指定的数据格式的数据 则返回 假
(.T.) 如果数据符合多值格式 例如 CF_FILES CF_HDROP 或CFSTR_OLEVARIANTARRAY 则返回 真 (.T.) 如果数据符合单值格式时 例如CF_TEXT CFSTR_OLEVARIANT 或 CFSTR_VFPSOURCEOBJECT 则返回
DataObject 中的值 .
如果使用 nFormat 或 cFormat 指定的数据格式存在 但是在 DataObject 中没有这种格式的数据 则触发一个拖动源的 OLESetData 事件 在使用 SetData 方法 将相应数据放在 DataObject 中之前 可以使用 SetFormat 方法 指定一种数据格式
应 用 于DataObject 对 象请 参 阅
ClearData 方 法 , GetFormat 方 法 , OLE drag-and-drop 概 览 , OLESetData 事 件 , SetData 方 法 , SetFormat 方 法