【发布时间】:2016-06-15 15:01:45
【问题描述】:
在 Visual basic 6 中,剪贴板有多种格式。要从剪贴板中检索 HTML 数据,这非常有用:https://support.microsoft.com/en-us/kb/274326
现在我的问题是,如何从拖动的数据而不是剪贴板中获取 HTML 信息?
例如, 我想要一个多行文本框,当我将内容从网页拖动到文本框时,文本框将显示从 OLE 拖动信息中检索到的 HTML,而不是 vbCFtext。
我尝试使用与上面链接中相同的技术,但不是 GetClipboardData - 使用 Data.GetData(RegisterClipboardFormat("HTML Format")) [来自 Picture1_OLEDragDrop(...] 但我得到一个溢出错误。 我已经在网上搜索了一个解决方案。有人在吗?
已编辑:以上已回答,谢谢!
添加: 非常感谢你!现在扭转这种情况的正确方法是什么?意思是,从文本框(包含 HTML)中拖动 - 并将其设置为在 HTML 模式下拖动?
当我简单地使用这个时:
Private Sub Text1_OLEStartDrag(Data As DataObject, AllowedEffects As Long) 'Data.SetData StrConv(Text1.Text, vbFromUnicode), (CF_HTML) Data.SetData Text1.Text, (CF_HTML) 结束子
我收到一个错误: “与 SetData 一起使用的非固有 OLE 拖放格式需要字节数组数据。GetData 可能返回比提供给 SetData 更多的字节(错误 675)”
发回数据的准确方法是什么? 并注意 in 可能有 Unicode 字符。 我是否必须使用内存副本和其他方法才能使其正常工作?非常感谢您的帮助!
【问题讨论】:
标签: visual-studio vb6 clipboard ole