欢迎光临
我们一直在努力

让 MFC 的 List Control 支持文件拖放的C++类

首先先说下类的下载地址:https://www.ikdya.com/2026/03/03/180.html

做 MFC 开发时想让 List Control 支持文件拖放,网上搜到的方案都不太顺手。

用 WM_DROPFILES 吧,拖的时候鼠标没反馈,用户体验像半成品。用 IDropTarget 吧,要写一堆 COM 接口,代码绕来绕去。

我就想要个简单的:拖放时有光标反馈,拖完能拿到文件路径,代码别太复杂。

所以自己写了个 DragClass 类,总共不到 200 行,用起来就三步:

第一步:把 DragClass.h 和 DragClass.cpp 加到项目里。

第二步:给 List Control 添加变量(比如 m_List),然后在 OnInitDialog 里加三行代码:

cpp

SetListToForm(&m_List); // 设置列表样式
extern DragClass _dr; // 全局实例(已在cpp中定义)
_dr.RegControl(m_List.m_hWnd, Fdrag1); // 注册拖放

第三步:写回调函数 Fdrag1,在里面处理拖进来的文件路径(代码里已经写好解析部分,你直接替换成自己的逻辑就行)。

编译运行,往列表里拖文件试试。拖的时候鼠标会变成复制图标,松开就能拿到文件路径。

这个类也支持 Edit 控件,用法一样。源码和示例都在上面的下载地址里,有问题欢迎留言交流。

赞(0)
未经允许不得转载:171主机测评 » 让 MFC 的 List Control 支持文件拖放的C++类
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址