怎么让你的窗口支持文件拖入功能

 

我们经常看到很多应用程序支持文件拖入功能,个人感觉很酷,碰巧本人毕设做的是一个多媒体播放器,刚好可以用到这个技术。所以查了下相关的资料。

 

    首先,我们要先熟悉下三个相关API函数的使用。

  

    1.VOID DragAcceptFiles(      
    HWND hWnd,
    BOOL fAccept
);

    这个函数的调用,表示你要让某个窗体能够接受文件的拖入。第一个参数指定是哪个窗口,第二个参数指定为true表示接受,否则表示不接受。

  2.

   

UINT DragQueryFile(      
    HDROP hDrop,

    UINT iFile,

    LPTSTR lpszFile,

    UINT cch

);

这个函数是获得拖入的文件信息的函数。在介绍这个函数之前,我们要先看个 消息。

WM_DROPFILES  我们必须处理这个消息,因为这个消息告诉我们 有文件拖入操作发生。最重要的是,

它传递给我们一个HDROP 的结构体,这个结构体正是你要在函数DragQueryFile里面要用到的第一个参数。

呵呵,第一个参数就结束完了。第二个参数,是个数字,如果你指定它为0xFFFFFFFF,那么函数的返回值就是文件

的个数。否则,这个参数表示你要获取的是第几个文件的路径名称。第三个参数,是一个字符串缓存,用来存放函数返回

给你的文件路径。如果这个参数被你指定为NULL,那么函数返回所需要的字符串缓存的大小。第四个参数,也就是你指定的

字符串缓存的大小了,呵呵。

3.VOID DragFinish(      
    HDROP hDrop

);

这个函数表示你对拖放操作已经处理完毕,系统可以释放文件信息结构了。

下面来看看例子:

1.首先在view视图类的OnCreate函数里面 调用DragAcceptFile,这里调用的是视图类的自己的DragAcceptFile函数

所以没有要求指定窗口。

2.CVideoPlayerView类中响应WM_DROPFILES 这个消息

上面实现的功能是,将文件拖入播放窗口,播放器就开始播放第一个拖入的文件,可以一次拖入多个文件。

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值