火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 3072|回复: 16
打印 上一主题 下一主题

[视窗] 文件拖放

[复制链接]

29

主题

170

帖子

996

积分

高级会员

Rank: 4

积分
996
跳转到指定楼层
楼主
发表于 2022-3-29 17:25:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ixiadao 于 2022-3-30 01:19 编辑

综合了网上几个文件拖放,整理了一下,有需要的可以下载研究
回复有人说官方有,认真找了一下,原来是MFC窗口组件有这个功能。官方的和网络几个文件拖放的模块大致是将所收到的文件打包成一个文本数组类,然后再传递出去,如果要对拖放的文件进行分析过滤,要等全部收到拖放的文件再对数组进行循环分析,这样的效率应该打打折扣的!这样的事件并非实时收到的事件,应该算是一个伪事件吧?我正是看到这些弊端,才对网络上几个文件拖放模块进行优化处理,真正实现了拖放事件,可以实时接收到收到的文件并进行处理,而且不依赖MFC组件。是否使用,还请各位自行决定!


增加 本批文件数、当前索引  两个参数,主要用于区分用户分批次拖放的内容



下面的文件为修改后的源文件,有需要请重新下载
测试.zip (33.19 KB, 下载次数: 8)

20220330-1264.png (37.96 KB, 下载次数: 29)

20220330-1264.png

测试.zip

24.27 KB, 下载次数: 17

回复

使用道具 举报

439

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36531
沙发
发表于 2022-3-29 18:14:54 | 只看该作者
我记着新版的火山已经支持文件拖放了吧。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

29

主题

170

帖子

996

积分

高级会员

Rank: 4

积分
996
板凳
 楼主| 发表于 2022-3-29 18:25:19 | 只看该作者
创世魂 发表于 2022-3-29 18:14
我记着新版的火山已经支持文件拖放了吧。

没看到阿
回复

使用道具 举报

7

主题

409

帖子

2162

积分

金牌会员

Rank: 6Rank: 6

积分
2162
QQ
地板
发表于 2022-3-29 18:39:55 | 只看该作者
早就支持了
回复

使用道具 举报

29

主题

170

帖子

996

积分

高级会员

Rank: 4

积分
996
5#
 楼主| 发表于 2022-3-29 20:26:38 | 只看该作者

请问哪个类目?我这里找了半天没找到,是不是因为我是免费版的?
回复

使用道具 举报

29

主题

170

帖子

996

积分

高级会员

Rank: 4

积分
996
6#
 楼主| 发表于 2022-3-29 20:30:05 | 只看该作者

看到了,不过是MFC界面库的功能

151. 视窗: "MFC界面基本类"类库中的"窗口组件"类新增"文件被拖放"事件和"允许文件拖放"属性,用作支持当从资源管理器上将文件拖放到窗口组件上时得到事件通知;
回复

使用道具 举报

29

主题

170

帖子

996

积分

高级会员

Rank: 4

积分
996
7#
 楼主| 发表于 2022-3-29 20:43:24 | 只看该作者
创世魂 发表于 2022-3-29 18:14
我记着新版的火山已经支持文件拖放了吧。

官方的代码我建议优化,将所有文件打包成数组,然后再通过事件传递一个数组过去?为什么不实时传递接收到的文件呢?
回复

使用道具 举报

28

主题

340

帖子

2895

积分

金牌会员

Rank: 6Rank: 6

积分
2895
8#
发表于 2022-3-29 22:49:11 | 只看该作者
- -你这个其实也不完美吧,详见我的贴子
http://bbs.voldp.com/forum.php?m ... id=11644&extra=
你的也是这样的.
回复

使用道具 举报

26

主题

1487

帖子

5591

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5591
9#
发表于 2022-3-29 23:06:27 | 只看该作者

哈哈,你看楼主上一条的回复就知道了,他喜欢单独接收每个文件,其实楼主这个代码主要就是把仰望火山模块里的改成单文件
火山模块里的文件拖放恰好是我之前提交给仰望修改的,主要是加了 ChangeWindowMessageFilter,可以在以管理员身份运行的时候也能接收到投放文件。

现在官方MFC里的文件拖放也是这个问题,没有加 ChangeWindowMessageFilter 或 ChangeWindowMessageFilterEx,以管理员身份运行就接收不到文件了。

个人来说,当然是返回文件数组最好,拆分了就无法区别是哪次拖进去的,和一次拖了多少个文件,这些在某些情况下是有意义的。

回复

使用道具 举报

28

主题

340

帖子

2895

积分

金牌会员

Rank: 6Rank: 6

积分
2895
10#
发表于 2022-3-29 23:42:06 | 只看该作者
Xelloss0618 发表于 2022-3-29 23:06
哈哈,你看楼主上一条的回复就知道了,他喜欢单独接收每个文件,其实楼主这个代码主要就是把仰望火山模块 ...

是的,之前有这个需求,找了几个拖放都是单独的,不好判断是不是一次拖放的,火山模块数组输出的可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-5-9 16:04 , Processed in 0.093707 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表