MFC实现文件拖拽功能
2013-04-06 03:02
441 查看
消息:WM_DROPFILES
函数:void OnDropFiles(HDROP hDropInfo)
添加方法:
情况一:
如果控件已经提供允许文件拖拽功能,则直接按下图所示添加相应的消息函数,同时将Accpet Files属性设置为True;
情况二:
如果控件没有提供文件拖拽功能,则需要以该控件对应的类作为基类,派生一个子类,此时子类就能够接受文件拖拽消息,与情况一一样的操作添加相应的消息函数,同时将Accpet Files属性设置为True;
Demo:
说明:以CListCtrl为例子,默认情况下,CListCtrl是不接受文件拖拽功能的,因此,应该如情况二所说进行处理。
工程运行结果:
工程代码下载链接:点击打开链接 http://download.csdn.net/detail/d704791892/5224786
函数: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
相关文章推荐
- MFC单个控件实现文件拖拽功能
- MFC中实现单个控件接收拖拽文件的功能
- VS2008中,MFC对话框类实现类似QQ拖拽上传文件的功能,CWnd::OnDropFiles
- MFC中窗口实现拖拽文件功能
- MFC单文档实现文件拖拽功能
- MFC中实现单个控件接收拖拽文件的功能
- 简单的实现对话框中文件的拖拽功能
- 在MFC中实现拖拽文件到对话框中的编辑控件中
- C#文件文件夹拖拽功能的实现
- MFC 实现图片的拖拽功能,代码很详细,贴过去就能用!
- 通过继承实现edit控件的拖拽文件功能扩展的一般步骤
- VS2012 MFC 对话框支持文件拖拽功能
- C# winform窗体实现文件拖拽打开的功能
- mfc实现文件的拖拽操作
- MFC打开文件对话框功能实现
- C#窗体实现文件拖拽功能
- js实现控制文件拖拽并获取拖拽内容功能
- MFC总结(10) ---- MFC中CFileDialog 实现浏览文件和浏览目录功能
- 《MFC实现文件打开和保存功能实现》
- 基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽)