goodhao926 发表于 2016-3-27 17:39:07

文本、文件拖入;文本、文件拖出 自定义拖拽方案

来gif:


在看截图:
1文件支持:


2多文件支持:


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





更新日志:
原帖:http://bbs.eyuyan.com/read.php?tid=384944[直接复制到浏览器]某易友的这个方法好
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开始
下面附件
————————————————————————————————
链接:**** Hidden Message ***** 密码:st6w转自:易语言论坛备份:**** Hidden Message *****

嗨~~ 发表于 2016-4-30 10:30:54

支持一下                     

t1459565677 发表于 2016-12-11 22:47:02

拿分走人呵呵,楼下继续!楼主厉害了哦

怪盗基德 发表于 2016-3-27 18:26:23

感觉不明觉厉下载看看

失落的年轻人 发表于 2016-3-27 20:01:37

只能说GIF质量太差

Ernest 发表于 2016-3-30 00:17:13

af8zaf8zaf8z

59hdvj 发表于 2016-3-31 22:00:16

支持楼主感谢分享

康师傅 发表于 2016-4-1 08:24:55


感觉不明觉厉

流星 发表于 2016-4-9 20:13:43

感谢分享~

破解快乐 发表于 2016-5-2 15:08:22

没搞明白什么意思
页: [1] 2
查看完整版本: 文本、文件拖入;文本、文件拖出 自定义拖拽方案