精易论坛

标题: 文本、文件拖入;文本、文件拖出 自定义拖拽方案 [打印本页]

作者: 我爱搬运    时间: 2016-3-19 11:13
标题: 文本、文件拖入;文本、文件拖出 自定义拖拽方案
先来gif:


在看截图:
1文件支持:


2多文件支持:


3文本支持(Unicode与Ansi ):(需要支持文本拖放的窗口,比如你的易语言  拖放对象.接收文本=真 才能接收到本程序拖出去的数据)





更新日志

1新增拖出时候的图标显示(非窗口模拟)
2修复内存泄露的问题
3增加注释方便新手理解
4增加文本 多文件的支持
私有格式  (这个就留给你们自己扩展了)
也就是说可以实现这样:比如你程序自己拖出的项目,只有你自己的程序可以接收
其实很简单,IDropSource(拖出组件) IDropTarget(拖放组件) 都需要调用IDataObject接口 前者是设置数据  后者是获取数据  自己处理就好
引用:
GDIPlus类2.3kyozy(用于位图句柄的获取)
ETAL  路过已错过(用于com接口的支持)
向以上作者的开源精神致敬!
说明:
1本代码最难理解的是com接口,易语言本身不支持,需要ETAL模块将易语言的类转com的类,其实你理解了com接口  基本就读懂了这段代码
2实现的接口   (对代码不懂可以自己百度以下接口)
IDataObject(我们给他取名叫数据源接口,调用方通过CallObject()调用IDataObject类来获取数据,然后做出处理  )
IDropTarget(我们给他取名叫拖放处理接口,DragEnter()DragOver()DragLeave()Drop()就是回调过程 类似子类化的回调过程     
IDropSource(我们跟他取名叫拖出接口,它也有2个回调函数 ,它主要处理回调 数据由IDataObject提供)
3调用的接口
IDragSourceHelper(鼠标拖出的图标显示,就和API一样,只不过调用方法不同)
IDropTargetHelper(鼠标拖入的图标显示,就和API一样,只不过调用方法不同
4 CallObject()函数 参数二索引[整数型]的问题
索引=看c++的头文件,看类定义(比如IDataObject.GetData=3)从第一个方法开始数  数到你要调用的方法 索引从0开始
发现奔溃 内存泄露  等等情况 欢迎反馈!
文件拖拽.zip (1.47 MB, 下载次数: 2060)





本帖搬运易语言论坛,原作者:1010795186



作者: Xw‘小威    时间: 2016-3-19 18:17
果断支持。。就是有点看不懂。
作者: 见与不见    时间: 2016-3-22 08:45
好东西,感谢分享
作者: 苏烟式    时间: 2016-3-23 12:41
还是先收藏,说不定以后能用上
作者: fab861122    时间: 2016-3-24 13:37
不错,谢谢分享!
作者: yver1    时间: 2016-4-15 16:51
不错,谢谢分享!
作者: ymghg888    时间: 2016-10-7 12:54
win7管理员模式下无效
作者: q377602992    时间: 2016-11-3 21:37
支持一下楼主
作者: 阿诺大大    时间: 2017-2-14 23:19
如果支持自动就好了
作者: gg867594531    时间: 2017-6-9 01:15
不错,谢谢分享!

作者: yy1812606998    时间: 2017-11-9 02:43
好东西支持
作者: wojinz    时间: 2017-11-16 18:58
很不错。。。
作者: jinpeng520    时间: 2018-11-5 23:56
好像只能拖图片,不能拖文件
作者: 梦在路上    时间: 2018-12-31 17:20
看看怎样的.
作者: 9707856    时间: 2019-2-14 12:10
好像没有看见文本拖拽
作者: wis98    时间: 2020-2-16 12:13

好像没有看见文本拖拽
作者: LuoChenDev    时间: 2020-3-18 20:23
谢谢谢谢谢谢
作者: CUTEGIRL    时间: 2021-8-28 10:16
好厉害啊
作者: AMEN.@    时间: 2021-10-1 18:39
6666666666666666
作者: 18074941457    时间: 2021-11-21 01:38
谢谢大佬分享开源
作者: 王宝泽    时间: 2021-12-24 21:16
#在这里快速回复#+ “'AND RQ='” + 编辑框2.内容 + “'or RQ='” + 编辑框3.内容 + “'”)
作者: 王宝泽    时间: 2021-12-24 21:18
+ “'AND RQ='” + 编辑框2.内容 + “'or RQ='” + 编辑框3.内容 + “'”)
作者: 阿石    时间: 2022-2-25 20:55

看看怎样的.
作者: tmtony    时间: 2022-3-8 10:19
很不错呢,好好学习一下
作者: gaopujun    时间: 2022-9-16 20:25
阿石 发表于 2022-2-25 20:55
看看怎样的.

谢谢 学习一下
作者: zhihuab    时间: 2022-11-4 22:12
很不错呢,好好学习一下
作者: chn88    时间: 2022-12-30 22:41
谢谢 学习一下
作者: alfjal    时间: 2023-1-9 20:47
666666666666666
作者: uulive    时间: 2023-1-30 16:16
从第一个方法
作者: uulive    时间: 2023-1-30 16:16

谢谢大佬分享开源
作者: a990350    时间: 2023-7-8 16:22
感谢分享
作者: qqmqqg    时间: 2023-9-6 12:39
888888888777777777777777
作者: xxins    时间: 2024-5-11 15:29
这个太优秀了 学习到了




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4