将文件拖曳到窗体上, 并获取其完整路径 【C++ Builder下实现】转

1. 在窗体的头文件.h里声明处理函数和消息映射, 如:

[cpp] view plain copy

  1. class TForm1 : public TForm
  2. {
  3. ...
  4. void __fastcall HandleDropFiles(TMessage &Owner;
  5. ...
  6. BEGIN_MESSAGE_MAP
  7. MESSAGE_HANDLER(WM_DROPFILES,TMessage,HandleDropFiles)
  8. END_MESSAGE_MAP(TForm)
  9. };

2. 在窗体的实现文件.cpp中, 添加代码

FormCreate事件响应中:

[cpp] view plain copy

  1. void __fastcall TForm1::FormCreate(TObject *Sender)
  2. {
  3. ...
  4. DragAcceptFiles(Handle,true);
  5. ...
  6. }

最重要的处理函数HandleDropFiles:

[cpp] view plain copy

  1. void __fastcall TForm1::HandleDropFiles(TMessage   &msg)
  2. {
  3. char FileName[_MAX_PATH];
  4. int i, Sum;
  5. //   获得拖拉的文件数目,该功能由第二个参数决定
  6. Sum = DragQueryFile(HDROP(msg.WParam), 0xFFFFFFFF, NULL, 0);
  7. if(Sum > 0)
  8. {
  9. // 这里只要第一个文件
  10. DragQueryFile(HDROP(msg.WParam), 0, FileName, _MAX_PATH);
  11. // 将文件路径显示于窗体上的Text控件
  12. txtPath->Text = AnsiString(FileName);
  13. }
  14. //  释放应用程序为传递文件名而开辟的内存空间
  15. DragFinish( HDROP(msg.WParam) );
  16. }

原文地址:https://www.cnblogs.com/hanny/p/9028489.html

时间: 2024-07-31 05:54:38

将文件拖曳到窗体上, 并获取其完整路径 【C++ Builder下实现】转的相关文章

批处理集锦——(6)【转】批处理实现全盘搜索指定文件获取其完整路径方法大全

[方案一]for /f + dir @echo off rem 指定待搜索的文件 set "FileName=string.bat" echo 正在搜索,请稍候... for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do ( if exist %%a:\ ( for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%"

C++获取当前所有进程的完整路径

实现代码 #include <stdio.h> #include <windows.h> #include <tlhelp32.h> #include <string> #include <tchar.h> #include <Psapi.h> #pragma comment (lib,"Psapi.lib") BOOL DosPathToNtPath(LPTSTR pszDosPath, LPTSTR pszNt

springMVC 获取本地项目路径 以及上传文件的方法整理

String path=request.getSession().getServletContext().getRealPath("upload/img/product"); //二进制上传 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; //获取文件 CommonsMultipartFile fpic=(CommonsMultipartFile) multipa

将一张图片上传到指定的文件夹,然后在窗体上的PictrueBox控件中显示出来

代码如下: private void btnUpload_Click(object sender, EventArgs e) { //创建一个对话框对象 OpenFileDialog ofd = new OpenFileDialog(); //为对话框设置标题 ofd.Title = "请选择上传的图片"; //设置筛选的图片格式 ofd.Filter = "图片格式|*.jpg"; //设置是否允许多选 ofd.Multiselect = false; //如果你

xml存储通讯录数据并用C#程序解析出来显示在窗体上

1.先创建一个xml文件存放数据 2.在VS中新建一个项目,创建一个Windows窗体应用程序(路径项目名称自己修改) 3.在窗体上拖出如下控件,并修改好各个控件的属性,方便在代码中确定是哪个控件,最好不要使用系统默认的控件名称(可以起一些有意义的名称方便在写代码时确认控件要显示的数据....没看明白自己体会) . 4.双击窗体编写代码,首先要解析xml文件必须在头文件中添加 using System.Xml; 头文件 然后要想加载出来就显示数据就必须在这个 private void Form1

打开文件对话框和文件拖曳功能

打开文件对话框和文件拖曳功能 打开文件对话框 生成一个编辑框控件绑定变量m_szPath,一个按钮控件添加事件OnBnClickedButtonBrowse(). void CMFC06FileBrowseDlg::OnBnClickedButtonBrowse() { // TODO: 在此添加控件通知处理程序代码 // 过滤器 static TCHAR BASED_CODE szFilter[] = _T("JPG (*.jpg)|*.jpg|") _T("BMP文件 (

文件或资源的上传和下载

1.文件的上传 [1] 简介 > 将一个客户端的本地的文件发送到服务器中保存. > 上传文件是通过流的形式将文件发送给服务器. [2] 表单的设置 > 向服务器上传一个文件时,表单要使用post请求. > 表单的默认属性enctype="application/x-www-form-urlencoded" - 这个属性的意思是请求体中的内容将会使用URL编码 > 上传文件的表单enctype需要设置为 multipart/form-data - multi

在linux系统上怎么获取命令的帮助信息及man文档划分

如何在linux系统上获取命令的帮助信息及man文档的章节划分 1.命令 -- help 2.man 命令 后者更加详细 首先帮助中尖括号<>和方括号[]以及省略号...的含义, 在方括号内的表达式("[" 和 "]"之间的字符)是可选的(写命令时要去掉括号). 在尖括号内的表达式("[" 和 "]"之间的字符)是必须替换的表达式(而且要去掉括号). 省略号表示该选项可以单个或多个 以7z的参数为例: 7z [..

PHP之文件的锁定、上传与下载

小结文件的锁定机制.上传和下载 1.文件锁定 现在都在讲究什么分布式.并发等,实际上文件的操作也是并发的,在网络环境下,多个用户在同一时刻访问页面,对同一服务器上的同一文件进行着读取,如果,这个用户刚好读到一半,另一个用户就写入了消息,那么前一个用户读到的就是错误数据,在数据库里面好像是称为脏数据,而如果某用户写到一半时,另一用户也对该文件进行写操作,那么就造成了写入数据的混乱和错误,因此才php有一个锁机制,类似于数据库的锁,当某用户在对文件操作时就加上某种锁,使得在同一时间其他用户不能对该文