MFC中实现单个控件接收拖拽文件的功能

本文介绍了如何在MFC中使单个控件(如Edit和ListBox)具备接收拖拽文件功能,通过响应WM_DROPFILES消息并利用DragQueryFile API获取文件名,实现拖放操作。同时强调了控件需开启Accept Files属性才能生效。
摘要由CSDN通过智能技术生成

现在有很多软件都支持拖拽功能,就是用鼠标拖着文件放到软件窗口中某个位置,软件就可以做出相应的反应。比如,Windows自带的播放软件Windows Media Player,你可以拖着一个媒体文件放到它的主窗口中,它就会开始播放这个文件。
怎么让自己的软件也有这个功能呢?
其实,并不是很难,只要让你需要有拖拽功能的控件响应WM_DROPFILES消息就行了。下面以Edit控件和ListBox控件为例子来说明。
首先,从CEdit继承,自定义一个Edit控件。在头文件添加如下的消息响应函数:

afx_msg void OnDropFiles(HDROP hDropInfo);
然后,在cpp文件中的消息映射中添加:

ON_WM_DROPFILES()
最后,在cpp文件中添加OnDropFiles函数的实现,对拖拽的文件进行处理。下面是完整的代码:

// lxEdit.h

class ClxEdit : public CEdit
{
DECLARE_DYNAMIC(ClxEdit)

public:
ClxEdit();
virtual ~ClxEdit();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值