请教关于DragAcceptFiles的使用
大家好,我用c++ buidler xe4使用DragAcceptFiles拖动外部文件到本地程序中无效。请帮忙谢谢。
代码如下:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
// ---------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
// ---------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
}
// ---------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender) {
DragAcceptFiles(this->Handle, true);
}
// ---------------------------------------
void __fastcall TForm1::DragDropFiles(TMessage &msg) // 拖动消息处理
{
wchar_t FileName[MAX_PATH];
int i, Sum;
Sum = DragQueryFile(HDROP(msg.WParam), 0xFFFFFFFF, NULL, 0); // 获得拖曳文件数
for (i = 0; i < Sum; i++) {
DragQueryFile(HDROP(msg.WParam), i, FileName, MAX_PATH); // 得到文件名
WideString sFileName = FileName;
memset(FileName, 0, sizeof(FileName));
// 转换成长文件
GetLongPathName(sFileName.c_bstr(), FileName, MAX_PATH);
// 把文件名挨个显示在 Memo 里
mmo1->Lines->Add(sFileName);
}
DragFinish(HDROP(msg.WParam));
}