码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-05-12 14:23:19      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:toc   cli   传递   for   csdn   声明   object   file   title   

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. }  

 

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

标签:toc   cli   传递   for   csdn   声明   object   file   title   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!