1. 在窗体的头文件.h里声明处理函数和消息映射, 如:
- class TForm1 : public TForm
- {
- ...
- void __fastcall HandleDropFiles(TMessage &Owner;
- ...
- BEGIN_MESSAGE_MAP
- MESSAGE_HANDLER(WM_DROPFILES,TMessage,HandleDropFiles)
- END_MESSAGE_MAP(TForm)
- };
2. 在窗体的实现文件.cpp中, 添加代码
FormCreate事件响应中:
- void __fastcall TForm1::FormCreate(TObject *Sender)
- {
- ...
- DragAcceptFiles(Handle,true);
- ...
- }
最重要的处理函数HandleDropFiles:
- void __fastcall TForm1::HandleDropFiles(TMessage &msg)
- {
- char FileName[_MAX_PATH];
- int i, Sum;
-
- Sum = DragQueryFile(HDROP(msg.WParam), 0xFFFFFFFF, NULL, 0);
- if(Sum > 0)
- {
-
- DragQueryFile(HDROP(msg.WParam), 0, FileName, _MAX_PATH);
-
- txtPath->Text = AnsiString(FileName);
- }
-
- DragFinish( HDROP(msg.WParam) );
- }
将文件拖曳到窗体上, 并获取其完整路径 【C++ Builder下实现】转
原文:https://www.cnblogs.com/hanny/p/9028489.html