VC++6.0中拖曳文件到文本框得到文件名(OnDropFiles).doc

VC++6.0中拖曳文件到文本框得到文件名(OnDropFiles).doc

ID:57665229

大小:697.50 KB

页数:5页

时间:2020-08-31

VC++6.0中拖曳文件到文本框得到文件名(OnDropFiles).doc_第1页
VC++6.0中拖曳文件到文本框得到文件名(OnDropFiles).doc_第2页
VC++6.0中拖曳文件到文本框得到文件名(OnDropFiles).doc_第3页
VC++6.0中拖曳文件到文本框得到文件名(OnDropFiles).doc_第4页
VC++6.0中拖曳文件到文本框得到文件名(OnDropFiles).doc_第5页
资源描述:

《VC++6.0中拖曳文件到文本框得到文件名(OnDropFiles).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VC++6.0中拖曳文件到文本框得到文件名(OnDropFiles)假设在一个对话框程序中,有两个文本框(IDC_EDIT_FILE1和IDC_EDIT_FILE2)和两个按钮(IDC_BTN_1和IDC_BTN_2),这两个文本框中要输入两个不同的文件名称,从而完成相应的操作(如比较两个文件的差异),我们不得不通过两个按钮来实现两次“打开文件”的过程(相信我,这个功能经常会使用到的)。此时,我们可以使用OnDropFiles功能。以下从不同角度(对话框、文本框)来完成这个工作。不管从何种角度,让我们先来了解一下OnDropFiles到底是何物

2、。OnDropFiles是WINDOWS窗口的WM_DROPFILES消息的消息响应函数,值得注间的是,对于基于对话框的程序,默认是没有此消息项的(它隐身了),也就不能正确响应这个消息。在开始之前,我们先让这个消息对基于对话框的程序显现出来:“类向导”->“类信息”,在MessageFilter选项中选择Window,确认后,再在“MessageMaps”中就会出现WM_DROPFILES了:既然提到了OnDropFiles,函数DragQueryFile()函数不得不提。通常,在OnDropFiles函数中,我们通常都会不止一次地使用到这个函

3、数,它能获取拖曳到当前窗口(对话框、文本框)中的文件数量及文件名称,以下是此函数的简单说明:UINTDragQueryFile(HDROPhDrop,UINTiFile,LPTSTRlpszFile,UINTcch);其中,参数说明如下:  hDrop :用于区分”包含被拖拽文件名称结构”的句柄。即存放所拖放文件名称的数据结构的句柄,也就是文件名缓冲区的句柄;  iFile :文件索引编号(用于指明所要查询文件的序号,如果拖进多个文件,则索引编号从零开始),如果iFile值为0xFFFFFFFF时,返回的是拖曳到窗体上的文件的个数。如果iFil

4、e值在0和拖拽文件总数之间时,DragQueryFile拷贝与文件名存储缓冲区大小适应的文件名称到缓冲区中;  lpszFile:函数返回时,用于存储拖拽文件名称的缓冲区指针。文件名称是一个以空终止“”结尾的字符串。如果此参数是NULL,DragQueryFile函数返回拖拽的文件数目。函数DragQueryFile得到的文件名,是带完整路径的文件名;cch     :存储拖拽文件名称缓冲区的大小,即lpszFile指针所指缓冲区的字符数。返回值说明如下:1、如果函数拷贝文件名称到缓冲区中,返回值就是拷贝的字符数,不包括终止的NULL字符;  

5、2、如果文件索引值是0xFFFFFFFF,则返回值是被拖拽的文件总数,注意文件索引变量的值将保持不变,依然为0xFFFFFFFF; 3、如果文件索引值在0和拖拽文件总数之间时,并且lpszFile值为NULL时,返回值是存储此被拖拽文件的名称所需要的缓冲区大小值,此值是不包括终止NULL字符的字符数。(此种用法很少用,一般会直接用MAX_PATH宏定义就可以了,不必要知道文件名的真正字数)。实际中常会用到以下两种情况:1、获取文件数目:UINT iFileCount;iFileCount=::DragQueryFile(hDropInfo,0x

6、ffffffff,NULL,0);2、获取指定索引的文件名:charfile_name[MAX_PATH];::DragQueryFile(hDropInfo,iFileCount -1,file_name,MAX_PATH); 一、对话框实现WM_DROPFILES消息1、打开对话框属性,选中“接收文件”选项(如此对话框才会响应WM_DROPFILES消息),如下图所示:2、为对话框增加WM_DROPFILES响应函数,即OnDropFiles(),如下图所示:3、为OnDropFiles添加代码(注意,这里有个for循环,只是演示一下常规用

7、法,正常情况下,可以直接得到最后一个文件的名称),如下图所示:4、编译运行。这样,将文件拖放到对话框的任何地方,都可以将该文件名显示在IDC_EDIT_FILE1对话框中了。当然了,只要再CDragFileDlg类中再增加一个计数变量,就可以为另一个对话框实现类似功能了。但是,在这里,我们会使用另外一种方法完成IDC_EDIT_FILE2的这种功能的添加。二、文本框实现WM_DROPFILES消息1、为IDC_EDIT_FILE2添加“接收文件”属性,此操作同对话框相应操作相同;2、新建类CFileEdit,基类为CEdit,如下图所示:3、为

8、新类CFileEdit定义WM_DROPFILES消息响应,此操作与对话框相应操作相同,只是在类向导中指定类为CFileEdit,而不是之前的CDra

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。