在窗口的OnCreate响应中,添加:
DragAcceptFiles(TRUE);
接着响应ONDROPFILES消息。在响应中添加如下方法:
//hDropInfo是指向含有被拖放的文件名的结构体的句柄
char szFilePathName[_MAX_PATH + 1] = {0};
//函数原型:UINT DragQueryFile(HDROP hDrop, UINT iFile, LPTSTR lpszFile, UINT cch)
//当iFile为0xFFFFFFFF时,后面两个参数忽略,并返回拖放文件的个数
UINT nNumOfFiles = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);
//循环处理拖放的多个文件
for (UINT nIndex=0; nIndex < nNumOfFiles; nIndex++)
{
DragQueryFile(hDropInfo, nIndex, (LPTSTR)szFilePathName, _MAX_PATH);
//通过文件路径,做文件处理的那些事
MessageBox((LPTSTR)szFilePathName);
}
DragFinish(hDropInfo);//拖放操作完成,释放用来传输文件名的内存