ixiadao 发表于 2022-3-29 17:25:53

文件拖放

本帖最后由 ixiadao 于 2022-3-30 01:19 编辑

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


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



下面的文件为修改后的源文件,有需要请重新下载

创世魂 发表于 2022-3-29 18:14:54

我记着新版的火山已经支持文件拖放了吧。

ixiadao 发表于 2022-3-29 18:25:19

创世魂 发表于 2022-3-29 18:14
我记着新版的火山已经支持文件拖放了吧。

没看到阿

芒g一号 发表于 2022-3-29 18:39:55

早就支持了

ixiadao 发表于 2022-3-29 20:26:38

芒g一号 发表于 2022-3-29 18:39
早就支持了

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

ixiadao 发表于 2022-3-29 20:30:05

芒g一号 发表于 2022-3-29 18:39
早就支持了

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

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

ixiadao 发表于 2022-3-29 20:43:24

创世魂 发表于 2022-3-29 18:14
我记着新版的火山已经支持文件拖放了吧。

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

b0y 发表于 2022-3-29 22:49:11

- -你这个其实也不完美吧,详见我的贴子
http://bbs.voldp.com/forum.php?mod=viewthread&tid=11644&extra=
你的也是这样的.

Xelloss0618 发表于 2022-3-29 23:06:27

b0y 发表于 2022-3-29 22:49
- -你这个其实也不完美吧,详见我的贴子
http://bbs.voldp.com/forum.php?mod=viewthread&tid=11644&extra=
...
哈哈,你看楼主上一条的回复就知道了,他喜欢单独接收每个文件,其实楼主这个代码主要就是把仰望火山模块里的改成单文件
火山模块里的文件拖放恰好是我之前提交给仰望修改的,主要是加了 ChangeWindowMessageFilter,可以在以管理员身份运行的时候也能接收到投放文件。

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

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

b0y 发表于 2022-3-29 23:42:06

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

是的,之前有这个需求,找了几个拖放都是单独的,不好判断是不是一次拖放的,火山模块数组输出的可以
页: [1] 2
查看完整版本: 文件拖放