首先先说下类的下载地址: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 控件,用法一样。源码和示例都在上面的下载地址里,有问题欢迎留言交流。





![[C++]算法双指针 复写0-171主机测评](https://www.171host.com/wp-content/uploads/2026/09/20260910013601-6aa2098179e1b-220x150.png)