您的位置:首页 > 其它

MFC实现文件拖拽功能

2013-04-06 03:02 441 查看
消息:WM_DROPFILES

函数:void OnDropFiles(HDROP hDropInfo)

添加方法:

情况一:

如果控件已经提供允许文件拖拽功能,则直接按下图所示添加相应的消息函数,同时将Accpet Files属性设置为True;





情况二:

如果控件没有提供文件拖拽功能,则需要以该控件对应的类作为基类,派生一个子类,此时子类就能够接受文件拖拽消息,与情况一一样的操作添加相应的消息函数,同时将Accpet Files属性设置为True;

Demo:

说明:以CListCtrl为例子,默认情况下,CListCtrl是不接受文件拖拽功能的,因此,应该如情况二所说进行处理。

void CDropFileListCtrl::OnDropFiles(HDROP hDropInfo)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
WCHAR filePath[MAX_PATH];
WIN32_FIND_DATA wfd;

CString strFileName;
CString strFileSize;
CString strCreateTime;

int nCounts = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);		//获取拖拽的总文件数
for (int i = 0; i < nCounts; i++)
{
DragQueryFile(hDropInfo, i, filePath, sizeof(filePath)*2);
FindClose(FindFirstFile(filePath, &wfd));

strFileName = wfd.cFileName;
strFileSize.Format(_T("%d"), wfd.nFileSizeLow);
CTime time(wfd.ftCreationTime);
strCreateTime = time.Format(_T("%Y-%m-%d %H:%M:%S"));

InsertItem(i, strFileName);
SetItemText(i, 1, strFileSize);
SetItemText(i, 2, strCreateTime);
}

CListCtrl::OnDropFiles(hDropInfo);
}


工程运行结果:



工程代码下载链接:点击打开链接 http://download.csdn.net/detail/d704791892/5224786
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: