|
TWndMethod OrigProc1;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
DragAcceptFiles(ListView1, true);
OrigProc1 = ListView1->WindowProc;
ListView1->WindowProc = EditProc1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EditProc1(TMessage& Msg)
{
if(Msg.Msg==WM_DROPFILES)
{
AddFileToEdit((HANDLE)Msg.WParam);
}
OrigProc1( Msg );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AddFileToEdit(HANDLE hDrop)
{
AnsiString FilePath;
FilePath.SetLength(MAX_PATH);
int FileCount = DragQueryFile(hDrop, 0xFFFFFFFF, FilePath.c_str(), MAX_PATH);
if(FileCount)
{
DragQueryFile(hDrop, 0, FilePath.c_str(), MAX_PATH);
ShowMessage(FilePath);
//Edt_FileName->Text=FilePath;
}
DragFinish(hDrop);
}
//---------------------------------------------------------------------------
EditProc1 이 함수로는 접근을 하지만 탐색기에 있는 폴더를 드래그 해도 마우스 모양이 + 모양이 안나오고 x 표시가
되며 WM_DROPFILES 위 이벤트를 감지 못하내요 ㅠㅠ
|