首先需要修改控件的属性。
单击想要接受文件的控件,在右下角属性栏,把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 定义变量数组。
这段简单的代码用来显示所有拖拽的文件路径。