MFC:VS拖拽多个文件到控件并获取路径

首先需要修改控件的属性。
单击想要接受文件的控件,在右下角属性栏,把Acccept Files改成True
在这里插入图片描述
然后Ctrl+Shift+X(或者右键菜单)打开类向导
在这里插入图片描述
修改window消息机制,点击"消息",找到"WM_DRAPFILES",再添加处理程序。
添加如下代码:

void COCRDlg::OnDropFiles(HDROP hDropInfo)
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值
 int count;
 TCHAR filePath[256];//必须用宽字符
 count = DragQueryFile(hDropInfo, -1, NULL, 0);//获取拖拽文件总数
 for (int i = 0; i < count; i++)//每个文件都显示文件路径
 {
  DragQueryFile(hDropInfo, i, filePath, sizeof(filePath));
  MessageBox(filePath);
 }
CDialogEx::OnDropFiles(hDropInfo);
}

DragQueryFile函数第二个参数是-1时,获取拖拽的文件总数。
为其它非负数时,相当于索引,获取该索引的文件路径名。

注意文件名的参数类型是LPWSTR宽字符串数组,所以用TCHAR 定义变量数组。

这段简单的代码用来显示所有拖拽的文件路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值