这个是我昨晚在做某工程的时候写的,然后就共享出来,要实现文件拖曳首先要让窗口支持文件拖曳功能,首先要设置窗口的accept files属性为真,或者在初始化的时候加入DragAcceptFiles函数使得窗口支持文件拖曳,这时候你就可以试试把文件拖曳过去会发现鼠标不在是之前那个停止的图标,这时候我们要添加拖曳处理消息为窗口添加OnDropFiles消息,然后键入下面代码
void CXXXXXDlg::OnDropFiles(HDROP hDropInfo)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
WCHAR wcStr[MAX_PATH];
UINT nFileNum = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);//DragQueryFile第二参数为为 0xFFFFFFFF的时候返回拖曳的文件个数
DragQueryFile(hDropInfo,nFileNum-1,wcStr,MAX_PATH);//获得拖曳的最后一个文件的文件名
DragFinish(hDropInfo); //用完要记得释放掉hDropInfo
CDialog::OnDropFiles(hDropInfo);
}
//如上是获得拖曳的最后一个文件的文件名存入wcStr里面,当然你也可以用循环获得所有拖曳的文件名,接下来要做什么事情就靠你自己了