文件拖放的一种简洁方法
文件拖放的一种简洁方法
DragQueryFile即可实现文件的拖放操作,而且完全克服了上述3点不足。下面先介绍一下这个函数。
---- DragQueryFile原型为:
UINT DragQueryFile( HDROP hDrop,
UINT iFile,
LPTSTR lpszFile,
UINT cch )
---- 其中hDrop是指向拖动文件结构的句柄;
---- iFile 是以0开始的被托动文件的序号,因为一次可能拖动多个文件。当此参数
---- 设为0xFFFFFFFF,则函数返回拖动文件的数量;
---- lpszFile 是指向文件名的缓冲区;
---- cch 是文件名缓冲区的大小,即文件名的字符数。
---- 明确了该函数的参数后,编程就是一件很简单的事情了。以下给出一个完整的实例,程序运行后弹出一个对话框,可以拖动任意数量的文件或目录到上面,松开鼠标后,程序先显示拖放文件的数量,然后将拖放的文件名全部显示在一个List Box控件中。具体步骤如下:
建立一个基于对话框的工程drop,然后其它选项全部用缺省值。
选中IDD_DROP_DIALOG对话框中Extended Styles的Accept files属性。
给IDD_DROP_DIALOG对话框添加一个List Box 控件IDC_LIST1。
在ClassWizard中给CdropDlg类添加成员变量m_list,类型为ClistBox。
给CdropDlg类中增加处理WINDOWS消息WM_DROPFILES的函数,接受系统给出的默认名字OnDropFiles,然后输入以下代码:
void CDropDlg::OnDropFiles(HDROP hDropInfo)
{
char *lpszFileName=new char[512],cFileCount[10];
int nFileCount,i;
nFileCount=::DragQueryFile
(hDropInfo,0xFFFFFFFF,NULL,512);
::AfxMessageBox(itoa(nFileCount,cFileCount,10));
for (i=0;i〈nFileCount;i++) { UINT nChars="::DragQueryFile" (hDropInfo,i,&lpszFileName[0],512); CString str(&lpszFileName[0],nChars); m_List.AddString(str); } ::DragFinish (hDropInfo); //释放内存 i="0;" delete []lpszFileName; // CDialog::OnDropFiles(hDropInfo); 此语句注释掉
} </pre>
---- 注意程序中的::DragFinish (hDropInfo);语句是必不可少的,它用于释放WINDOWS为处理文件拖放而分配的内存。
---- 运行此程序可以看到,拖动的文件只要一进入对话框的边界,鼠标上立刻会现一个“+”,在对话框上的任意位置释放鼠标,拖放的文件都会被接受,完全解决了《用MFC实现文件拖放到编辑框》必须将文件拖到编辑框的不足;而且拖放是通过调用WINDOWS API函数实现的,因此程序非常健壮,几乎没有什么维护量。程序在INDOWS98、vc++5.0下通过
文件拖放的一种简洁方法相关推荐
- 实现文件拖放的一种简洁方法
1.自已编写专用的类,程序复杂.维护麻烦:2.必须要将文件拖到对话框中的编辑控件上,拖动的文件名才被接受,而标准的WINDOWS程序只须将文件拖放到对话框即可被接受:3.只能接受一个拖放的文件.本文要 ...
- Tomcat不能自动编译JSP文件问题的一种解决方法
Tomcat不能自动编译JSP文件问题的一种解决方法 参考文章: (1)Tomcat不能自动编译JSP文件问题的一种解决方法 (2)https://www.cnblogs.com/zhouhb/p/5 ...
- Linux 搜索文件和文件夹的 4 种简单方法
Linux 管理员一天都不能离开搜索文件,因为这是他们的日常活动.了解一些搜索的东西是不错的,因为这能帮助你在命令行服务器中工作.这些命令记忆起来不复杂,因为它们使用的是标准语法. 可以通过四个 Li ...
- 职场人士需了解:职场文件删除了三种恢复方法
对于职场人士来讲,或多或少或许都遇到过文件误删的情况吧,例如熬夜做一周的数据,就在要完成最后一项报告的时候,因手误将文件永久删除了,或者连续加班赶的活动策划被有心之人删除了......误删职场文件是很 ...
- coreldraw错误代码14001_CorelDRAW文件损坏的几种解决方法
以前做好的CorelDRAW文件突然打不开了,或者是死机.非法操作等原因造成CorelDRAW文件损坏,有时打开源文件发现一片空白,源文件保存损坏无法打开怎么办?此时不要着急,你可以试试以下几种办法帮 ...
- 2003服务器u盘不显示不出来,U盘文件不显示三种解决方法
我们在使用U盘的时候,或多或少会遇到一些奇怪的问题,其中有一种就是U盘文件不显示了,明明U盘里拷贝了很多的文件,突然有一天不见了,但看U盘的容量显示又是有的,为什么会这样呢?下面就教大家解决它. 方法 ...
- 怎么把PDF分割成几个文件?分享几种分割方法
PDF文件怎么分割成几个PDF文件呢?PDF文件大家都不陌生,不管是学习还是工作都会用得到,当我们遇到一份文件发现内容不完全需要,只要把它分割成几个有用的问价就可以了,应该怎么做呢?相信还有很多小伙伴 ...
- 文件隐藏的几种简单方法
每个人都有一些隐私的文件或文件夹不想让别人看到,有时又不想刻意安装隐藏文件夹的软件.今天就给大家说说一些简单的文件隐藏方法. 1.最简单的方法 右击想要隐藏的文件或文件夹,在弹出的菜单中选取" ...
- zip文件加密的几种破解方法
一.使用ZipCenOp.jar(需要java环境),在cmd中使用 java -jar ZipCenOp.jar r xxx.zip 成功后压缩包可以直接打开 ZipCenOp.jar 链接: ht ...
最新文章
- Yann LeCun:距离“真正的” AI,我们还缺什么?
- 卷积、傅立叶变换、拉普拉斯变换、Z变换
- python中的object是什么意思_Python object类中的特殊方法代码讲解
- 【风控流程】大数据风控代码逻辑
- 1.设计模式中监听模式(观察者模式)(Python实现)
- Oracle入门(十四.20)之创建DML触发器:第一部分
- 云计算平台2017年盘点——真正成为新技术新应用的基础架构
- 原版英文书籍《Linux命令行》阅读记录7 | 原版英文书籍《Linux命令行》阅读记录7 | 一些键盘按键技巧...
- hibernate 的一对多关联关系映射配置
- sprintf()出错,使用strcat()正确
- python爬虫框架scrapy学习图片下载
- 高通SDX12:USB主模式调试及RTL8153驱动移植
- 渗透测试PTES标准流程(超详细)
- VUE项目开发,使用开发者工具查看源文件
- 数据挖掘从业人员的愿景
- Android中仿微信选择图片并展示在RecyclerView中
- 云上解锁Web3.0 阿里云XR平台助力彼真科技呈现沉浸式演唱会
- Revo Uninstaller专业版
- 中转网关 (Transit Gateway) Connect连接类型集成FortiGate安全服务
- 哈佛结构和冯诺依曼结构特点
热门文章
- zookeeper Error contacting service. It is probably not running
- 大数据统计学直观图表(二)
- 深入理解simhash原理
- 互联网晚报 | 12月27日 星期一 | 蚂蚁消费金融增资220亿;小米MIUI13正式官宣;《蜘蛛侠3》登顶全球年度票房冠军...
- 互联网日报 | 3月7日 星期日 | 《你好,李焕英》成中国影史票房亚军;丰巢新增智能存包柜业务;特斯拉推出内部社交平台...
- 2020年中国互联网租车报告
- 2020腾讯二次元营销通案
- const与static的区别
- java 发展方向_Java程序员的发展方向有哪些
- arcgis批量处理nc文件_法律行业python教程——利用python批量处理文件之批量重命名...